su un file.php esterno a joomla non riuscireti a capire se il codice funiona?
E' un serpente che si morde la coda: per le mie necessità l'utente che intende accedere deve prima loggarsi sul Portale, che è programmato con Joomla!.
Per fare un test dovrei aprire un altro sito, ma per creare le stesse condizioni dovrei fare con Joomla! anche questo, e siamo da capo.
Oltretutto la funzione incriminata JFactory::getUser() non è una funzione php standard ma ha bisogno di riscontro nella libreria libraries/joomla/factory.php, che è solo in Joomla!.
Come già ti ho detto, il miglior riscontro della correttezza del codice è il fatto che ha funzionato sempre senza problemi da J 1.6 a J 3.4.8 attraverso qualche diecina di aggiornamenti successivi.
Peraltro sono sempre più convinto che il bug non stia in getUser ma sia da attribuire ad una errata gestione della sessione. In altre parole il codice non riconosce lo User perché nel frattempo Joomla! ha chiuso la sua sessione e ne ha aperto un'altra, dove i dati dello User evidentemente non sono più disponibili.
Un'altra conferma: facendo il dump dell'oggetto User restituitomi dalla funzione a parentesi vuota non mi viene dato alcun errore, e mi viene restituito il contenuto completo dell'oggetto.
Un'ultima conferma di quanto sopra mi viene data da una prova fatta mettendo nella parentese il mio codice personale getUser(xx): getUser in questo caso mi restituisce i miei dati.
Quindi getUser funziona, ma nella sessione i dati dell'utente loggato non ci sono più.
Altra prova che incrimina la sessione: dopo l'aggiornamento a 3.5.0 la prima volta che ho aperto la mia gate ho ricevuto l'errore "headers have already been sent", probabilmente proprio perché Joomla! aveva aperto una sessione senza che nessuno glielo chiedesse.
Scusa se ho ripetuto parte dei discorsi precedenti, ma credo che ogni tanto bisogna mettere insieme tutto quanto per correlazionare prove ed indizi.
Mentre scrivevo ho avuto un'illuminazione: sono andato a controllare i cookies inseriti dalla mia pagina. Ho trovato due cookies con identico nome uno dopo l'altro, ma con contenuto diverso.
Il secondo non avrei dovuto trovarlo.
Adesso non ho più altri elementi da fornire, ma mi serve una rapida soluzione per il mio problema, che sta bloccando l'accesso non solo a me - che ho comunque sempre accesso diretto al database - ma agli amministratori centrali e regionali della ONLUS per la quale gestisco questo lavoro.
Grazie per l'attenzione.
Fabrizio
OT: a un pignolo come me non poteva sfuggire la svista nell'intestazione del Forum