Back to top

Autore Topic: Problema 3.5.0: colpa di getUser o della sessione?  (Letto 7650 volte)

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Problema 3.5.0: colpa di getUser o della sessione?
« il: 25 Mar 2016, 01:46:37 »
E' possibile fare un downgrade alla veraione precedente? La nuova versione mi ha creato solo problemi.
Qual è la procedura?
Grazie
Fabrizio
« Ultima modifica: 29 Mar 2016, 09:16:34 da Fabrizio Fiorita »
Fabrizio
Per programmare servono i tasti e la testa. Peccato che molti usino solo i primi...
Vai a vedere il mio sito: http://www.fabriziofiorita.joomlafree.it/index.php?option=com_content&view=featured&Itemid=101

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #1 il: 25 Mar 2016, 07:03:56 »
Backup preventivo + ripristino?

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #2 il: 25 Mar 2016, 15:51:50 »
Era una domanda disperata: se hai letto un altro mio post, con l'aggiornamento a 3.5.0 non mi funziona più il riconoscimento dell'Utente loggato, che invece prima funzionava benissimo, da quasi quattro anni.
In sostanza la funzione             
Codice: [Seleziona]
$reg_user = & JFactory::getUser();        non mi restituisce l'oggetto User dell'utente.
Ho scorso tutti gli articoli ed i tutorials pubblicati qui sull'argomento, secondo i quali il mio codice è corretto, però il risultato è sempre sbagliato.
Ho controllato riga per riga includes/defines.php, includes/framework.php e soprattutto libraries/joomla/factory.php e non ho trovato differenze con la precedente versione che possano influire sul problema.
Ti posto nuovamente il mio codice:
Codice: [Seleziona]
/* Acquisizione dei dati dell'utente del Portale Telematico.*/
           define( '_JEXEC', 1 );
           define('JPATH_BASE', '../' );
           require_once ( JPATH_BASE .'/includes/defines.php' );
           require_once ( JPATH_BASE .'/includes/framework.php' );
           require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );
             $mainframe = & JFactory::getApplication('site');
             $reg_user = & JFactory::getUser();
             $codice = $reg_user->name;
Analizzando le segnalazioni di errore che mi escono nel seguito delle procedure vedo che manca soltanto l'oggetto User.
Hai qualche suggerimento? Grazie
Fabrizio

Fabrizio
Per programmare servono i tasti e la testa. Peccato che molti usino solo i primi...
Vai a vedere il mio sito: http://www.fabriziofiorita.joomlafree.it/index.php?option=com_content&view=featured&Itemid=101

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #3 il: 25 Mar 2016, 19:33:38 »
No ma con la tua esperienza dovresti sapere che in un aggiornamento il backup è essenziale. Non saprei come farti tornare indietro in altro modo, non dico che non sia possibile farlo ma il backup è il modo più veloce ed indolore.

Offline $Red

  • Moderator
  • Instancabile
  • *****
  • Post: 5351
  • "Bastard Inside"
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #4 il: 25 Mar 2016, 19:37:49 »
Ciao, scusate se mi infilo lo faccio spesso  :) e un pò per curisosità ma sopra tutto per imparare, e magari le mie domande aiutano a trovare la soluzione, per il problema per cui vuole tornare alla versione 3.4.8 non è che nella 3.5 è cambiato qualcosa nel database quindi quel codice non funziona piu e và modificato?

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #5 il: 25 Mar 2016, 20:54:36 »
Anzi, grazie per l'intrusione.
Qui il database non dovrebbe entrarci per niente: ho verificato la tabella degli Users ed è sempre quella, senza aggiunte né varianti.
La domanda è questa: perché la funzione JFactory::getUser() non funziona più dopo l'aggiornamento a 3.5.0? Quella funzione è attiva fin da 1.6, l'ho inserita ormai quasi 4 anni fa ed ha sempre funzionato, fino alla settimana scorsa.
Oltretutto, andando sui tutorials di Joomla!
https://www.google.it/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwj90c-QztzLAhVCAA8KHeesBUgQFggdMAA&url=https%3A%2F%2Fdocs.joomla.org%2FJFactory%2FgetUser&usg=AFQjCNHZ2GO9uZLoXXqTJPnvQY_ZBdfcXg
https://www.google.it/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwj90c-QztzLAhVCAA8KHeesBUgQFggmMAE&url=https%3A%2F%2Fdocs.joomla.org%2FAccessing_the_current_user_object&usg=AFQjCNFWNtePbZV0CdkzonbWDa-oyCEFTg
https://www.google.it/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwj90c-QztzLAhVCAA8KHeesBUgQFgg0MAI&url=http%3A%2F%2Fwww.joomla.it%2Farticoli-della-community%2F5208-recupero-dati-utente-da-sessione-joomla.html&usg=AFQjCNGLeWIii1Pv7XMZOhZSaQOXVMh7Pw
eccetera eccetera, il codice JFactory::getUser()dovrebbe funzionare. Perché non lo fa?
Grazie per qualche indicazione risolutiva, ne ho estremo bisogno.
Fabrizio
P.S. E' chiaro che la richiesta di downgrade era solo una provocazione.
Fabrizio
Per programmare servono i tasti e la testa. Peccato che molti usino solo i primi...
Vai a vedere il mio sito: http://www.fabriziofiorita.joomlafree.it/index.php?option=com_content&view=featured&Itemid=101

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #6 il: 26 Mar 2016, 07:48:03 »
Centreranno qualcosa gli ultimi aggiornamenti di sicurezza relativi alla protezione della sessione?
Qual'era la tua ultima 3.4?

Offline assospiz

  • Esploratore
  • **
  • Post: 138
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #7 il: 26 Mar 2016, 09:07:58 »
Gentile Fabrizio noi non siamo certo esperti e sappiamo che potrà sembrarle assurdo ma, dopo aver visto il suo sito, provi a disabilitare passo a passo moduli e plugin per vedere se c'è qualche interazione fastidiosa.
Le diciamo questo per anche noi nel passaggio da 3.4.8 a 3.5 abbiamo avuto qualche problemino soprattutto con il componente user e quello weblinks.
Poi abbiamo disabilitato il modulo "articoli correlati" e quasi per magia hanno ricominciato a funzionare correttamente tutti e due.
Mistero? Certo! Ma fatto sta che funziona.
PS:
La funzione
Codice: [Seleziona]
JFactory::getUser();e la funzione
Codice: [Seleziona]
JFactory::getDBO();a noi, con joomla 3.5, "funzionano" ancora.
« Ultima modifica: 26 Mar 2016, 09:09:41 da assospiz »
SPIZ Associazione di Promozione Sociale
www.spiz.it

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #8 il: 26 Mar 2016, 11:36:21 »
Tomtom, la mia ultima precedente era la 3.4.8.
Ho pensato anche io che il problema fosse la sessione: solo che non conosco esattamente la correlazione tra le librerie di Joomla! e quindi non sono riuscito a risalire.
Come indicazione, l'utente accede come utente del portale, e questo io lo vedo dal backend. Poi mi serve sapere chi è, perché nelle pagine php e su un altro database (esterni a Joomla!) vado ad individuare le autorizzazioni.
Da Joomla! mi manca quindi solo l'identificazione dell'utente.
Se mi dai qualche indicazione ulteriore vado a vedere, grazie.

Per Assospiz:
il problema non sta dentro il sito ma in una gate che dal sito porta ad un altro pacchetto applicativo, che con Joomla! condivide solo lo spazio sul server.
Sta di fatto che quella gate non si apre, e questo non ha niente a che vedere né con i moduli né con i plugins.
Fabrizio
Per programmare servono i tasti e la testa. Peccato che molti usino solo i primi...
Vai a vedere il mio sito: http://www.fabriziofiorita.joomlafree.it/index.php?option=com_content&view=featured&Itemid=101

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #9 il: 26 Mar 2016, 14:54:04 »
Sono andato a vedere la pagina Joomla! Issue Tracker - CMS e ho trovato che la segnalazione #9514 riguarda proprio un caso come il mio.
https://issues.joomla.org/tracker/joomla-cms/9514
Qualche admin può verificare se è corretta la mia individuazione?
La persona che segnala lamenta:
but since upgrading, I get a "Failed to start the session because headers have already been sent" on pages that were working fine before.
Effettivamente anche io ho avuto quel problema, che credevo di aver risolto applicando il buffering dell'output; ma, tornato il formato della pagina, mi è rimasto il ben più grave problema del mancato riconoscimento dell'utente loggato. Credo che sia un sintomo di qualcosa che non funziona nella gestione della sessione.
In (lunga) attesa di 3.5.1 e (lunghissima) di 3.5.2 è possibile individuare una correzione temporanea per ripristinare le pagine, che sono per me molto importanti?
Grazie.
Fabrizio
Per programmare servono i tasti e la testa. Peccato che molti usino solo i primi...
Vai a vedere il mio sito: http://www.fabriziofiorita.joomlafree.it/index.php?option=com_content&view=featured&Itemid=101

Offline $Red

  • Moderator
  • Instancabile
  • *****
  • Post: 5351
  • "Bastard Inside"
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #10 il: 26 Mar 2016, 15:44:19 »
Potresti provare la correzione suggerita su github https://github.com/joomla/joomla-cms/commit/943f2e9197a412bf7295bb50ff94988e855c8805 se è lo stesso problema dovrebbe tornare a funzionare tutto

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #11 il: 26 Mar 2016, 16:20:27 »
Provato, non mi apre più neppure sito e admin, mi dice:
Error displaying the error page: Application Instantiation Error: Application Instantiation Error
Fabrizio
Per programmare servono i tasti e la testa. Peccato che molti usino solo i primi...
Vai a vedere il mio sito: http://www.fabriziofiorita.joomlafree.it/index.php?option=com_content&view=featured&Itemid=101

Offline $Red

  • Moderator
  • Instancabile
  • *****
  • Post: 5351
  • "Bastard Inside"
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #12 il: 26 Mar 2016, 16:25:31 »
non ci capisco molto, nel link che hai inserito hai provato a leggere il commento sotto? https://issues.joomla.org/tracker/joomla-cms/9514#event-142902

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #13 il: 26 Mar 2016, 16:42:02 »
Ho letto tutto, provato tutto quello che ho trovato sull'argomento, ma non ho risolto nulla.
Il bugfix sul file joomla.php è stato disastroso, ho fatto marcia indietro di corsa.
Il codice riportato come test.php nel link che ho inserito https://issues.joomla.org/tracker/joomla-cms/9514#event-142902 è come il mio, a meno del richiamo del contenuto dell'oggetto sessione, che a me non serve.
Fabrizio
Per programmare servono i tasti e la testa. Peccato che molti usino solo i primi...
Vai a vedere il mio sito: http://www.fabriziofiorita.joomlafree.it/index.php?option=com_content&view=featured&Itemid=101

Offline $Red

  • Moderator
  • Instancabile
  • *****
  • Post: 5351
  • "Bastard Inside"
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #14 il: 26 Mar 2016, 18:39:55 »
se c'è la possibilità di testare, cioè avere una prova del fuonzionamento o no del codice, hai testato il codice in un file a se fuori joomla?

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #15 il: 26 Mar 2016, 19:13:50 »
Non saprei dove testarlo: in effetti mi serve proprio per collegare Joomla! al mio pacchetto esterno.
Posso solo dirti che dalla 1.6 fino alla 3.4.8, attraverso tutti gli aggiornamenti successivi, ha sempre funzionato, sia in remoto sia in locale (xampp).
Esaminando tutto quello che ho visto, letto e provato, compresi i dump degli oggetti, sarei arrivato ad una possibile conclusione: non è getUser() che non funziona, ma è una sessione nuova che viene aperta in qualche modo, facendo perdere così il contatto con l'utente loggato nella sessione precedente.
Ne è un sintomo l'errore "Failed to start the session because headers have already been sent" che è stato riscontrato anche da altri ed al quale io ho dato soluzione con il buffering dell'output. Ma è un paliativo, non un rimedio.
 
Fabrizio
Per programmare servono i tasti e la testa. Peccato che molti usino solo i primi...
Vai a vedere il mio sito: http://www.fabriziofiorita.joomlafree.it/index.php?option=com_content&view=featured&Itemid=101

Offline $Red

  • Moderator
  • Instancabile
  • *****
  • Post: 5351
  • "Bastard Inside"
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #16 il: 28 Mar 2016, 20:57:19 »
Non saprei dove testarlo: in effetti mi serve proprio per collegare Joomla! al mio pacchetto esterno.
Posso solo dirti che dalla 1.6 fino alla 3.4.8, attraverso tutti gli aggiornamenti successivi, ha sempre funzionato, sia in remoto sia in locale (xampp).
Esaminando tutto quello che ho visto, letto e provato, compresi i dump degli oggetti, sarei arrivato ad una possibile conclusione: non è getUser() che non funziona, ma è una sessione nuova che viene aperta in qualche modo, facendo perdere così il contatto con l'utente loggato nella sessione precedente.
Ne è un sintomo l'errore "Failed to start the session because headers have already been sent" che è stato riscontrato anche da altri ed al quale io ho dato soluzione con il buffering dell'output. Ma è un paliativo, non un rimedio.
su un file.php esterno a joomla non riuscireti a capire se il codice funiona?

OT grazie della segnalazione per la descrizione del forum ho scritto ad alexred, non ti ho potuto risp. in privato perche hai i mess chiusi
« Ultima modifica: 28 Mar 2016, 21:05:23 da $Red »

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #17 il: 28 Mar 2016, 21:59:27 »
Citazione
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  :P

Fabrizio
Per programmare servono i tasti e la testa. Peccato che molti usino solo i primi...
Vai a vedere il mio sito: http://www.fabriziofiorita.joomlafree.it/index.php?option=com_content&view=featured&Itemid=101

Offline alexred

  • Fuori controllo
  • *
  • Post: 25672
  • Sesso: Maschio
  • Esperto in ozio relaxed
    • Mostra profilo
Re:Downgrade a 3.4: con 3.5 non mi funziona più nulla
« Risposta #18 il: 29 Mar 2016, 06:58:01 »
Ciao Fabrizio Fiorita,
prova in un backup in locale del tuo sito ad aggiornarlo alla versione 3.5.1 RC,
vedo che fra le varie correzioni effettuate c'è qualcosa in riferimento alla sessione, ma non saprei se risolve il tuo problema.

P.s.
ti chiedo inoltre molto cortesemente se puoi modificare il titolo del primo post di questa discussione visto che hai ammesso essere solo una provocazione e potrebbe essere male interpretato da chi visita il forum.
« Ultima modifica: 29 Mar 2016, 07:49:07 da alexred »

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Problema 3.5.0: colpa di getUser o della sessione?
« Risposta #19 il: 29 Mar 2016, 10:13:30 »
Ciao Alessandro Rossi.
Finite le ferie?
Visto che tu giri per joomla.it come nel giardino di casa tua dimmi anche, per piacere, dove lo trovo questo aggiornamento.
Il mio codice che non funziona dovrebbe interessare anche te, visto che sei stato proprio tu, quattro anni fa, a suggerirmelo così come è ancora oggi.
Grazie per l'indicazione: mi fido, perché sei sempre stato una miniera d'oro.
Buona giornata.

PS. Va bene il titolo così?
Fabrizio
Per programmare servono i tasti e la testa. Peccato che molti usino solo i primi...
Vai a vedere il mio sito: http://www.fabriziofiorita.joomlafree.it/index.php?option=com_content&view=featured&Itemid=101

 



Web Design Bolzano Kreatif