Back to top

Autore Topic: recuperare dati sessione  (Letto 1424 volte)

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
recuperare dati sessione
« il: 12 Ott 2014, 17:25:56 »
Ciao a tutti
ho bisogno di un vostro consiglio:
ho creato un componente per j3.0 nel quale vorrei visualizzare dei dati se l'utente è loggato o meno.

All'interno del mio codice ho inserito questo controllo prima del ciclo if:

Codice: [Seleziona]
$user =& JFactory::getUser();
$usernet =  $user->get('id');
if (empty($usernet)) { ?>...

ma mi restituisce questo errore:

 Strict Standards:  Only variables should be assigned by reference in....

e fà riferimento alla prima riga del codice sopra postato, da cosa può dipendere?

grazie

Offline steganoga

  • Abituale
  • ****
  • Post: 1313
    • Mostra profilo
Re:recuperare dati sessione
« Risposta #1 il: 12 Ott 2014, 19:15:00 »
Only variables should be assigned by reference -> Solo le variabili possono essere assegnate per referenza
assegnate -> =
assegnate per referenza -> =&
variabile -> $pippo = 'hello';
classe -> JFactory
metodo chiamato staticamente -> ::getUser();
proprietà protetta -> id a cui è necessario accedere con ->get( ); che immagino sia un metodo pubblico o all'interno della classe che lo definisce -> incapsulamento

non vedo la sessione ne che ne fai uso
« Ultima modifica: 12 Ott 2014, 19:23:16 da steganoga »
...sono dove non ti aspetti di trovarmi, mi alimento della tua supponenza e disseto la mia curiosità nel silenzio.
Non sono un nemico, considerami un ospite.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:recuperare dati sessione
« Risposta #2 il: 13 Ott 2014, 08:41:23 »
in maniera un poco più semplice...

dipende dal fatto che JFactory::getUser() restituisce un oggetto, quindi è già una referenza (puntatore) e non una variabile, ergo non puoi usare =& ma devi usare =.

in realtà id e molte altre (name, username, email) sono public, quindi vi si può accedere direttamente ($user->id), comunque il tuo codice è sbagliato: se l'utente non è loggato hai id==0.

if (empty($usernet))  ===> if (!$usernet)

se capisco ciò che vuoi fare, che non è troppo chiaro...

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif