Visualizzazione risultati 1 fino 7 di 7

Discussione: $_SESSION non funziona correttamente

  1. #1
    Guest

    Predefinito $_SESSION non funziona correttamente

    Ciao ragazzi, mentre stavo creando la pagina del login (che è integrata nella index) ho notato che le sessioni non "ricordano" i valori che inserisco.
    Per essere sicuri che il codice scritto non fosse errato, avevo creato due pagine di esempio.
    Il codice della pagina 1 era:
    Codice PHP:
    <?php
    session_start
    ;
    $_SESSION['nome'] = 'valore';
    echo
    $_SESSION['nome'];
    ?>
    Mentre il codice della pagina 2 era:
    Codice PHP:
    <?php
    session_start
    ;
    echo
    $_SESSION['nome'];
    ?>
    Aprendo la pagina 1 compariva la scritta valore (fino a qui tutto bene) ma quando aprivo la pagina numero 2 non compariva niente. :
    Le due pagine le ho cancellate però, dovendo usare le sessioni per far loggare gli utenti al sito, il problema si ripresenta nel codice del login, inoltre, utilizzo le sessioni anche per visualizzare la pagina index, infatti, se ora visitate il mio sito, comparirà la scritta 'Sito in costruzione' perche la sessione 'userlog' (quella che utilizzo per vedere se la pagina è aperta da me) è vuota.
    L'unico problema è, che anche inserendo la stringa giusta nella sessione 'userlog', il sito non posso visualizzarlo neanche io.

    Come posso risolvere?
    Vi ringrazio in anticipo per l'aiuto

  2. #2
    Guest

    Predefinito

    Prova a fare così:
    Codice PHP:
    <?php
    session_start
    ;
    session_regenerate_id(TRUE);
    echo
    $_SESSION['nome'];
    ?>
    In teoria dovrebbe andare (:
    session_regenerate_id(TRUE) mettilo in tutte le pagine subito dopo session_start()

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da masitomato Visualizza messaggio
    Prova a fare così:
    Codice PHP:
    <?php
    session_start
    ;
    session_regenerate_id(TRUE);
    echo
    $_SESSION['nome'];
    ?>
    In teoria dovrebbe andare (:
    session_regenerate_id(TRUE) mettilo in tutte le pagine subito dopo session_start()
    Grazie ma non va ugualmente .
    Però ho una domanda: precedentemente creai un'altro sito(che cancellai), usavo il codice scritto come nel mio primo post e funzionava.
    Perchè ora lo stesso codice non và?

  4. #4
    Guest

    Predefinito

    Ragazzi ho risolto, era un errore banalissimo.
    Invece di scrivere:
    Codice PHP:
    <?php
    session_start
    ;
    echo
    $_SESSION['nome'];
    ?>
    Ho scritto:

    Codice PHP:
    <?php
    session_start
    ;
    echo
    $_SESSION["nome"];
    ?>
    In pratica ho sostituito gli apici singoli con quelli doppi.
    Ultima modifica di crazysoft : 06-06-2012 alle ore 13.42.42 Motivo: :lolloso:

  5. #5
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Non c'è alcuna differenza di funzionamento fra le due versioni sopra, quindi il problema non era quello.

    In compenso, session_start è una funzione, quindi devi chiamarla con
    Codice PHP:
    session_start();
    Quando non trovi la causa di un errore, rendere visibili tutti gli errori aiuta; basta aggiungere questa chiamata all'inizio del tuo script:
    Codice PHP:
    error_reporting(E_ALL);
    Ultima modifica di dreadnaut : 06-06-2012 alle ore 14.42.34

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Non c'è alcuna differenza di funzionamento fra le due versioni sopra, quindi il problema non era quello.

    In compenso, session_start è una funzione, quindi devi chiamarla con
    Codice PHP:
    session_start();
    Quando non trovi la causa di un errore, rendere visibili tutti gli errori aiuta; basta aggiungere questa chiamata all'inizio del tuo script:
    Codice PHP:
    error_reporting(E_ALL);
    Hai ragione, infatti ora è tornato a non funzionare, però prima ha funzionato quindi credevo fosse quello l'errore.

  7. #7
    Guest

    Predefinito

    Ho risolto, aveva ragione dreadnaut, ifìnfatti invece di scrivere
    session_start();
    avevo scritto
    session_start;
    Mentre in un'unica pagina, quella per testare il codice di masitomato, avevo scritto
    session_start();
    e quindi era andato.
    P.S. Scusate per le eventuali sciocchezze che ho detto nei miei post ma io sono un incompetente.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •