Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408

    Variabile di sessione non trovata

    Ciao a tutti

    Ho un problema con una variabile di sessione. Passo l'username di sessione ad un gestore di notifiche, ma stranamente mi dice undefined index: username. Eppure se provo a stamparla esiste, ed è corretta anche.
    Qualcuno sa quale possa essere vagamente il problema?

    Il codice è , per sommi capi, questo:
    Codice PHP:
    session_start();require_once("control/GestoreNotifica.php");
    $gn = new GestoreNotifica();
    $notifiche $gn->selezionaNotificheMembro($_SESSION['username'], 0); 
    e ovviamente al metodo risulta che ho passato NULL e mi da errore. Come diavolo è possibile?
    La variabile esiste!
    Ultima modifica di goatboy; 11-01-2016 a 11:55

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Usa il costruttore della classe GestoreNotifica per inizializzare le variabili, la variabile di sessione passagliela lì.

  3. #3
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Non cambia nulla. Ho provato anche a salvare la variabile di sessione in una variabile e passare quest'ultima, anziché direttamente $_SESSION['username']. Che differenza farebbe?

  4. #4
    Se stampi la variabile di sessione e vedi che è valorizzata allora lo sarà anche nel metodo selezionaNotificheMembro(). Stai facendo qualche casino. Posta il codice.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Il codice della pagina principale è questo. Ho semplicemente modificato passando la variabile di sessione in $username.

    Codice PHP:
    session_start();
    require_once(
    "control/GestoreNotifica.php");
    $username $_SESSION['username'];
    $gn = new GestoreNotifica();
    $notifiche $gn->selezionaNotificheMembro($username0); 
    Il metodo selezionaNotificheMembro fa un controllo sull'username (non l'ho scritto io questo codice, ma un mio collega di università):

    Codice PHP:
    if(!$this->control->ifExsistUsername($username))
        throw new 
    Exception("Nome Utente non valido"1); 
    che sarebbe questo metodo qui (sempre non scritto da me):
    Codice PHP:
    public function ifExsistUsername($username){
       
    $query="SELECT Username FROM utente WHERE Username='".$this->db->realEscapeString($username)."'";
       
    $num=sizeof($this->db->singleRow($query));
       if(
    $num<1)      return false;
       else
          return 
    true;

    Nel debugger di Firefox mi viene detto che è stata lanciata l'eccezione Nome utente non valido perchè al metodo selezionaNotificheMembro risulta passato NULL.

    In particolare, il messaggio di errore è questo:
    codice:
    <b>Notice</b>:  Undefined index: username in <b>C:\xampp\htdocs\www\PMP\gestione_task.php</b> on line <b>8</b><br />
    <br />
    <b>Fatal error</b>:  Uncaught exception 'Exception' with message 'Nome Utente non valido' in C:\xampp\htdocs\www\PMP\control\GestoreNotifica.php:91
    Stack trace:
    #0 C:\xampp\htdocs\www\PMP\gestione_task.php(8): GestoreNotifica
    &gt;selectAllNoticeOfMember(NULL, 0)
    #1 {main}
    thrown in <b>C:\xampp\htdocs\www\PMP\control\GestoreNotifica.php</b> on line <b>91</b><br />
    Ultima modifica di goatboy; 11-01-2016 a 12:44

  6. #6
    Posta il codice del metodo realEscapeString().
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Ritorna semplicemente mysqli_real_escape_string sul valore passato come parametro. Sono le scelte artistiche del mio collega..

  8. #8
    Perdonami ma nel messaggio di errore leggo:

    Undefined index: username

    Quindi be deduco che $_SESSION['username']; sia già null a monte.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Ma se provo a fare una echo di $_SESSION['username'], il valore mi viene stampato. Inoltre anche nella pagina viene usato più volte quel valore e lo legge.

  10. #10
    Qual'è la riga 8 di gestione_task.php?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.