|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jan 2005
Messaggi: 2
|
[PHP] Problema con le sessioni
Faccio una premessa un po' lunga per cercare di spiegare la situazione nel modo migliore possibile
Sto realizzando un sito che permetta agli utenti di effettuare un login, quindi uso le variabili $_SESSION[ ] per mantenere alcuni dati dell'utente prelevati dal db, tra i quali username e tipo di utente (amministratore, utente, ecc...) ... Al momento del login, viene inizializzata la sessione (session_start()) e settati i valori per le variabili di sessione... La pagina a cui si accede dopo il login ha come prima istruzione session_start(), posta prima di qualsiasi output HTML ... Viene visualizzato un messaggio di benvenuto contenente, tra l'altro, il tipo di utente, prelevato dalla variabile di sessione apposita. Il problema è il seguente: effettuando una prima volta il login, navigando e quindi uscendo, non ci sono errori; rientrando nel sito con un altro utente e navigando, capita che il tipo di utente cambi valore e ritorni al valore dell'utente precedente... nel mio codice NON c'è neanche un'istruzione che vada a modificare la variabile in questione, dopo il login... il logout è effettuato nel seguente modo: ... session_start(); session_unset(); $_SESSION=array(); ... per completezza, aggiungo che il login salva (volendo) un cookie, NON contenente però il tipo di utente... ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 2183
|
non ho ben capito il tuo problema cmq da quello che mi ricordo (usavo le sessioni nel mio forum in php più di un anno fa)
session_start genera un id alfanumerico mi pare di 16 caratteri, ecco questo lo devi conservare in un cookie così la prox volta che l'utente entra nella pagina, prima leggi il cookie e se c'è un id conservato, allora avvii la sessione con quell'id session_start(idprecedente) così si ristorano quelle variabili |
![]() |
![]() |
![]() |
#3 | |
Junior Member
Iscritto dal: Jan 2005
Messaggi: 2
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 2183
|
Quote:
continuo a non capirti.... se cancelli il cookie con il riferimento all'id di sessione, la prossima volta che quell'utente ritorna nella pagina avrà una sessione nuova.... se magari ti spieghi meglio anche se cmq io sono un pò arrugginito col php, qualcuno ti saprà aiutare meglio |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Il session ID viene automaticamente inviato tramite Cookie appena viene eseguita session_start...
Il problema è che il cookie inviato è relativo ad una sola sessione del browser... Conservare il session ID in un cookie e prelevarlo al nuovo login non ha senso...perchè il session ID è garantito essere univoco esclusivamente in una sessione del server web (se viene riavviato il server web i session ID si possono ripetere)... |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:03.