Newsgroup: it.comp.www.php
Titolo: Sessioni maledette (2)

Ci siamo: sto' uscendo fuori di testa.
Innanzitutto ringrazio tutti coloro che hanno accolto le mia grida di 
aiuto dandomi una mano e indicandomi link utilissimi.
Fino a questo momento sono arrivato a questo punto:
Uno script login.php che funziona correttamente :
viene creata la sessione sul server e impostato un cookie sul client 
avente come contenuto il SID.
I problemi vengono al logout: infatti nel logout.php
<?php
         session_start();
         header("Cache-control: private"); // IE 6 Fix
 
	session_destroy();
         #Verifico il risultato
         if($_SESSION['username']){
                 echo "Logout Non riuscito";
         }
         else {
                 echo "<a href=\"login.php\"><<Ritorna alla pagina di 
Login </a>";
         }
?>
In sostanza nel logout devo distruggere la sessione .
Questo avviene sul server , infatti non esiste piu' il file /tmp/sess_<SID>.
Perche' allora  $_SESSION['username'] continua ad esistere ? Stampa 
infatti Logout non riuscito.
Altra domandina:
se session.cookie_lifetime = 0 => la sessione deve essere distrutta 
quando il browser viene chiuso, giusto ?
Con il c@#@!o. su /tmp/ il file sess_<SID> ESISTE ANCORA.
Inoltre se faccio ripartire il browser e punto alla pagina di login, mi 
viene creato un altro SID lasciando sul server quello vecchio..... non 
ho parole.
Grazie e scusate lo sfogo

Prova con questa modifica !
Prima di distruggere una sessione è meglio cancellare le variabili con
$_SESSION['...']=FALSE;
Ecco come avrei fatto io:
<?php
         session_start();
         header("Cache-control: private"); // IE 6 Fix
// Mia modifica
        $_SESSION['username']=FALSE;
        $_SESSION=array();
//Fine mia modifica
         session_destroy();
          #Verifico il risultato
         if($_SESSION['username'])
        {
                  echo "Logout Non riuscito";
        }
          else
          {
                  echo "<a href=\"login.php\"><<Ritorna alla pagina di
                  Login </a>";
          }
 ?>
------------
Giovanni De Angelis WebMaster & Designer
IT - Italy (Rome)
hOmE 
www.mrguru.net
ICQ° 173723790

 ha scritto nel messaggio
news:3F8D398...@bluray.it...

Dal Vangelo secondo Rasmus (manuale del php):
session_destroy() destroys all of the data associated with the current
session. It does not unset any of the global variables associated with the
session, or unset the session cookie.
This function returns TRUE on success and FALSE on failure to destroy the
session data
Ovvero distrugge la sessione, ma non unsetta le variabili che però non
dovresti ritrovare nel famoso file di sessione che rimane sul server, basta
che lo apri con qualsiasi editor per verificare.
Ciao

Grazie Giovanni e Ant
ora mi funziona il logout, anche se obbietterei che una 
session_destroy() deve logicamente cancellare le variabili di sessione: 
altrimenti cosa la distruggo a fare?
Anche questo piccolo tassello e' stato inserito.
Non rimane che l'ultimo : perche' dopo l'uscita dal browser in /tmp 
appare ancora il <SID> della precedente sessione.
Grazie ancora

 sessione: altrimenti cosa la distruggo a fare?
Beh la session_destroy() funziona molto bene se usi i vari session_register,
session is registered ecc ecc..
Quando cominci a usare i "register_globals off compliant" $_SESSION, per
cancellare la sessione devi fare anche un bel $_SESSION = Array()

 Grazie ancora
prego,ciao
-- 
Ranger! aggiungi .it all'indirizzo per rispondermi via mail
www.rossi.eu.com