Newsgroup: it.comp.www.php
Titolo: cookie + sessioni ?

Salve a tutti ,
avrei bisogno di qualche consiglio di implementazione .... 
In pratica ho realizzato un piccolo forum usando le sessioni , grazie
alle quali una volta effettuato il login l'utente non deve più
reinserire i dati per ogni post che vuole fare .
Ovviamente a chiusura browser , o dopo il logout l'utente deve
rieffettuare il login ....
A questo punto vorrei espandere i miei "orizzonti" nel sito intero e mi
piacerebbe riuscire a fare in modo che l'utente non debba più effettuare
il login ma che venga riconosciuto automaticamente dal "sistema ".
Tanto per intenderci come un portale phpnuke .
Per effettuare ciò dovrei utilizzare anche un cookie vero ?
E in tal caso , dato che le generalità dell'utente sono storate in un db
nel cookie cosa dovrei memorizzargli ? (id oppure l'username)
Quindi IMHO dovrebbe funzionare così :
- quando l'utente entra nel sito leggo il cookie (id o username)
- in base all' id (o username) nel cookie estraggo i dati a me necessari
e li memorizzo in array di sessione
- utilizzo tali dati come mi servono nel sito :)
E' corretto tutto ciò ?
grazie
oOo razzo oOo

Ah , dimenticavo ancora una cosa .....
Quando può "durare" al massimo un cookie ?
grazie ancora
oOo razzo oOo


Sostanzialmente SI.
I cookie decidi tu quanto devono vivere, quindi anche per vari anni
Nei cookie e' corretto che inserisci un codice al qualle fai riferimento nel DB 
e qui inserisci i dati che vuoi "ricordarti"
Il PHP usa gia' un cookie per conto suo.
Puoi decidere anche di tenerlo in vita per vari anni, 
(vedi session.cookie_lifetime=  in php.ini)
pero' devi anche conservare il file sess_... 
nella directory   session.save_path=
Pero' tieni presente anche che non tutti accettano i cookies.
e che questi possono essere cancellati automaticamente dal browser dell'utente
(quando ne ha troppi)
Inoltre a riguardo le sessioni, se un browser non accetta cookie, 
il PHP usa il SID nell'url. quindi l'utente riesce a navigare correttamente...
In conclusione confermo per il tuo cookie e 
ti consiglio di lasciare session.cookie_lifetime=0 
(valido fino alla chiusura del browser)
Ciao
Roberto

il PHP usa il SID nell'url. quindi l'utente riesce a navigare correttamente...
Grazie per la risposta , mi hai dato conferma di ciň che "sospettavo" ,
ma ora mi č sorto un altro dubbio....
Nell'eventualitŕ che il browser dell'utente non accetti i cookie , (e i
cookie sono il meccanismo di propagazione della sessione) , sono io che
devo propagare il SID nei link o avviene automaticamente ?
A rigor di logica , e se non mi ricordo male quello che ho letto un po'
di tempo fa , dovrei essere io a far propagare il SID tramite  l'URL
vero ?
E .... se un browser accetta i cookie o meno lo riconosco dal valore
booleano che mi ritorna la funzione setcookie() ?
Queste sono le ultime due domande che mi tormentano ...... poi penso di
aver le idee un po' piů chiare !  :)
grazie e ciao
oOo razzo oOo

Il bravo PHP fa tutto da solo, non devi preoccuparti di niente! Prova
e stupisci...
lattepiů


booleano che mi ritorna la funzione setcookie() ?
Credo che il modo piu' veloce sia   (isset($_COOKIE[session_name()])) 
In ogni caso ricordati che i cookie sono disponibili alla pagina successiva a quella
dove sono stati settati.
Quindi se vuoi vederli subito, devi fare un reload della pagina (vedi piu' sopra)
Ciao
Roberto



Grazie sei stato molto esaustivo !!!
ciao
oOo razzo oOo