Back to top

Autore Topic: Impossibile identificare gli utenti abilitati all'accesso (-> "Downgrade a 3.4")  (Letto 1385 volte)

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Buongiorno.
Dopo l'aggiornamento a 3.5.0 ha smesso di funzionare una parte del Portale che gestisco per conto di una ONLUS.
Per la precisione si tratta dell'accesso, da parte di un numero limitato di Dirigenti della ONLUS, ai dati di un database riservato, collocato sullo stesso server che ospita il Portale.
In sintesi, la mia pagina php che consente l'individuazione di chi accede e recupera dal database le credenziali ed i limiti dell'accesso non riesce più ad individuare l'utente autorizzato.
Dal codice php che riporto:
Codice: [Seleziona]
/* Acquisizione dei dati dell'utente del Portale Telematico.*/
             define( '_JEXEC', 1 );
             define( 'DS', DIRECTORY_SEPARATOR );
             define( 'JPATH_BASE', realpath(dirname(__FILE__).'/..' ));
             require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
             require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
             require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );
             $mainframe = & JFactory::getApplication('site');
             $db =& JFactory::getDBO();
             $reg_user = & JFactory::getUser();
             $codice = $reg_user->name;
ho individuato modifiche ai files define.php, framework.php e factory.php.
Vorrei sapere, per cortesia, quali modifiche dovrei apportare al mio codice php per farlo funzionare nuovamente.
Grazie
Fabrizio
« Ultima modifica: 26 Mar 2016, 14:57:58 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 Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Impossibile identificare gli utenti abilitati all'accesso
« Risposta #1 il: 24 Mar 2016, 19:46:20 »
Ho consultato i vari articoli su Joomla! e il mio codice, secondo le istruzioni, dovrebbe funzionare (ed ha sempre funzionato da tre anni in qua, fino all'aggiornamento 3.5.0).
Una cosa mi rende perplesso:
- se scrivo getUser(mionumerodiuser) vengo regolarmente riconosciuto.
- se scrivo getUser() non funziona l'individuazione dell'utente attualmente loggato.
Dove può essere l'inghippo?
Qualcuno può darmi lumi? 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 MariaElenaBoschi

  • Appassionato
  • ***
  • Post: 469
    • Mostra profilo
Re:Impossibile identificare gli utenti abilitati all'accesso
« Risposta #2 il: 24 Mar 2016, 20:26:03 »
se metti il tuo id ti ritorna il tuo username ma se ne metti un altro te ne ritorna un altro... fa quello che gli chiedi.

se non passando nulla non ti da nulla vuol dire che in quel punto dove usi quella funzione non hai ancora "disponibile" l'id dell'user loggato
mancano 2 giorni alla mia prematura dipartita, saluti a tutti, meb.

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Impossibile identificare gli utenti abilitati all'accesso
« Risposta #3 il: 24 Mar 2016, 21:45:04 »
Se leggi bene i manuali di Joomla! vedrai che se metti un id ti viene restituito il dato dell'utente registrato corrispondente, ma se non metti nulla ti viene restituito il dato dell'utente corrente.
Ha sempre funzionato, per oltre tre anni, e adesso non funziona più dopo l'aggiornamento a 3.5.0. Quindi il problema non sta nel mio codice, sta in qualche file di sistema aggiornato.
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 MariaElenaBoschi

  • Appassionato
  • ***
  • Post: 469
    • Mostra profilo
Re:Impossibile identificare gli utenti abilitati all'accesso
« Risposta #4 il: 25 Mar 2016, 21:38:04 »
infatti, JFactory funziona benissimo perchè come dici se gli metti un id te lo restituisce, il problema è che se non glielo metti ; nel punto in cui hai inserito il codice, il tuo id user non è ancora definito probabilmente
mancano 2 giorni alla mia prematura dipartita, saluti a tutti, meb.

Offline Fabrizio Fiorita

  • Abituale
  • ****
  • Post: 1315
  • Sesso: Maschio
    • Mostra profilo
Re:Impossibile identificare gli utenti abilitati all'accesso
« Risposta #5 il: 25 Mar 2016, 22:10:58 »
Il mio ID User è perfettamente definito, risulto utente connesso nel pannello di controllo dell'Amministratore, nella tabella Users sul Database risulta l'ultimo accesso.
La mia domanda - non risposta - è questa: la funzione JFactory::getUser() ha dato risultati precisi dal maggio 2012 (J 1.6) ed attraverso tutti i successivi upgrades, fino a J 3.4. Ha smesso di funzionare qualche giorno fa, con l'aggiornamento a 3.5.0.
Perché?
Se faccio il dump dell'oggetto User mi viene restituito questo:
 
Codice: [Seleziona]
object(JUser)#44 (26) { ["isRoot":protected]=> NULL ["id"]=> int(0) ["name"]=> NULL ["username"]=> NULL ["email"]=> NULL ["password"]=> NULL ["password_clear"]=> string(0) "" ["block"]=> NULL ["sendEmail"]=> int(0) ["registerDate"]=> NULL ["lastvisitDate"]=> NULL ["activation"]=> NULL ["params"]=> NULL ["groups"]=> array(0) { } ["guest"]=> int(1) ["lastResetTime"]=> NULL ["resetCount"]=> NULL ["requireReset"]=> NULL ["_params":protected]=> object(Joomla\Registry\Registry)#45 (2) { ["data":protected]=> object(stdClass)#46 (0) { } ["separator"]=> string(1) "." } ["_authGroups":protected]=> NULL ["_authLevels":protected]=> NULL ["_authActions":protected]=> NULL ["_errorMsg":protected]=> NULL ["userHelper":protected]=> object(JUserWrapperHelper)#47 (0) { } ["_errors":protected]=> array(0) { } ["aid"]=> int(0) } come se la funzione non riuscisse a leggere l'ID dell'utente loggato.
Nota che, se l'utente non è loggato, non può vedere il link alla pagina php che recupera i suoi dati, quindi, se attiva il link, vuol dire che è loggato.

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