Newsgroup: it.comp.www.php
Titolo: Scadenza sessione

Ciao a tutti,
ho realizzato uno script che fa uso delle sessioni per accedere ad un area
privata tramite login. Sto usando php 4.2.2 supportato da redhat 9. Quando
accedo all'area riservata posso abbandonarla con una procedura di logout che
resetta tutte le variabili di sessione "$_SESSION=array();" e la distrugge
"session_destroy();".
Se il browser fa uso dei cookies sia che si effettui il logout sia che
chiuda il browser se tento di entrare senza immettere user e password non
riesco. Se invece non abilito i cookies e chiudo il browser senza seguire la
proc.di logout immettendo l'url con PHPSESSID precedente riesco a entrare.
Il motivo č dovuto al fatto che:
1- non passando per il logout che distrugge la sessione il browser tiene
memoria del PHPSESSID precedente e consente l'accesso anche se č stato
chiuso
2-alla chiusura del browser il valore PHPSESSID viene comunque mantenuto
poichč session.gc_maxlifetime=1440?
Considerando i cookies disabilitati come posso ottenere la distruzione della
sessione alla chiusura del browser?
grazie mille
Roberto
--------------------------------
Inviato via 
http://usenet.libero.it

 poichè session.gc_maxlifetime=1440?


 Grazie ancora
prego, ma la prox volta quota meglio!
Ciao
-- 
Ranger! aggiungi .it all'indirizzo per rispondermi via mail
www.rossi.eu.com

 realizzare whois online"
dipende dai punti di vista ;)
ste


Scusa se mi faccio gli affari miei ma all'apertura del tuo sito ho visto
questo:
Fatal error: Failed opening required './inc/root.inc.php' (include_path='.')
in /var/www/virgi/rossieucom/root.php on line 3
ti risulta?
ciao,
ste

Ho dato uno sguardo al "who's online" e tenendo a mente il mio problema ho
capito che (almeno spero):
- il server non sa quando un utente chiude il browser.
- per eliminare il PHPSESSID usato è necessario farlo esplicitamente con
"$_SESSION=array();"+"session_destroy();"
altrimenti il server manterrà informazione dell'id di sessione
Quindi due sono i casi:
- il mio utente esegue il logout, che prevede la distruzione della sessione
e quindi tutto va a buon fine
- se non esegue il logout devo gestire un timeout che scaduti n minuti
dall'inutilizzo dell'area privata mi esegue il session_destroy()
In tal modo ne lui ne altri richiamando la pagina riservata con l'id
precedentemente assegnato possono accedere, poichè defunto!!
Mi chiedo se non usassi alcun timeout...quanto tempo il server conserva le
info sull'id di sessione??
- session.cache_expire ??
- session.gc_maxlifetime ??
Fatemi sapere
Grazie


 ti risulta?
hai proprio ragione! ieri sera avevo giocato un pò troppo coi link 
simbolici ;) ora è a posto :)
cmq x la risposta che ho dato a roberto .. volevo solo dire che poteva 
guardare l'intervento di ValeRyo nel thread, mi sembrava che potesse 
essergli utile
ciao, e grazie x la segnalazione
-- 


 ciao, e grazie x la segnalazione
prego e riguardo alla tua risposta a roberto tutto ok è giusto, io facevo
solo una battuta in riferimento al "se guardi 5 messaggi sopra" (prima ho
quotato male) poichè dipende da come ordini i post, io ad esempio li ordino
dall'alto verso il basso in ordine cronologico, e quindi il post "come
realizzare whois online" me l'ho trovo 5 messagi in basso.
Miiii come sono prolisso e pignolo oggi! ;))
ciao
ste

 - session.gc_maxlifetime ??
questo indica solo i secondi (o la probabilità, non ricordo)
con coi chiamare la funzione di garbage collector, ovvero di quella 
funzione che cancella tutte le sessioni decretate morte.
questa funzione la puoi scrivere tu (una normale funzione php).


roberto wrote:
Inizia a non passare il SID tramite GET, magari inizia a diventare più 
difficile per qualcuno "riciclare" SID già utilizzati
ciao
Alesi_27

 difficile per qualcuno "riciclare" SID già utilizzati
Non vorrei dire cavolate, visto che è la prima volta che mi imbatto nelle
sessioni!
Il SID se non uso i cookies mi compare in automatico sulla URL quando passo
da una sottosezione all'altra della mia area riservata e comunque anche se
abilitassi i cookies non lo vedo ma se:
-copio l'url
-chiudo il browser
-riapro e incollo l'url
 
-->>entro lo stesso nell'area riservata!
PS: il fatto che mi compaia in automatico dipende da
session.use_trans_sid=1?
Eventualmente come faccio a passare il SID senza GET?
x Ranger:
Le tue info sono state preziose!!!Non sapevo niente di tutto ciò :-)
Ora spero di continuare a capire queste altre cose!!
Mille grazie


 
hai ragione, non somo praticissimo di sessioni, cmq il modo di non farlo 
vedere c'è sicuramente (in fondo è sufficiente trasmetterlo alle altre 
pagine in un qualsiasi modo - cookies - GET/POST )
Non saprei però per renderlo non visibile come si fà
ciao
Alesi_27