salve ragazzi volevo chiedervi un aiuto ho fatto un login con sessioni, e ho provato ad iserire una classe che salva le sessioni nel db, adesso succede che , la sessione la salva nel db, pero quando effettuo il logut non distrugge la sessione ,secondo voi cosa devo fare? questo e il logind
Codice PHP:
if($_POST['xxx']=="verific"){


if(!isset(
$_POST['login'])){$login="";}else{$login trim($_POST['login']);}
if(!isset(
$_POST['pass'])){$pass="";}else{$pass trim($_POST['pass']);}
if(!isset(
$login)or $login ==''){
echo
"inserire illogin";
return;
}if(!isset(
$pass) or $pass==''){
echo
"inserirela password";
}
else
{
$login trim(addslashes($_POST['login']));
$pass trim(addslashes($_POST['pass']));
echo  
$pass."non criptata
"
;
$pass md5($pass);
echo  
$pass." criptata
"
;
$DB = new DB();
$DB->connect();
$controllo_dati_utente mysql_query("select * from utenti where user = '$login' and pass = '$pass' and stato = 1 ");
if(@
mysql_num_rows($controllo_dati_utente) !=1){
echo
"nome non trovato";
}else{
$_SESSION['login']="$login";
echo
"loggin effettuato con successo".$_SESSION['login'];
echo
"
"
;
echo 
session_id();

}
}


questa e la classe per salvare le sessioni nel db
Codice PHP:
class session {
    
// session-lifetime
    
var $lifeTime;
    
// mysql-handle
    
var $dbHandle;
    function 
open($savePath$sessName) {
       
// get session-lifetime
       
$this->lifeTime get_cfg_var("session.gc_maxlifetime");
       
// open database-connection
       
$dbHandle = @mysql_connect("localhost","root","maurizio");
       
$dbSel = @mysql_select_db("test",$dbHandle);
       
// return success
       
if(!$dbHandle || !$dbSel)
           return 
false;
       
$this->dbHandle $dbHandle;
       return 
true;
    }
    function 
close() {
        
$this->gc(ini_get('session.gc_maxlifetime'));
        
// close database-connection
        
return @mysql_close($this->dbHandle);
    }
    function 
read($sessID) {
        
// fetch session-data
        
$res mysql_query("SELECT session_data AS d FROM ws_sessions
                            WHERE session_id = '
$sessID'
                            AND session_expires > "
.time(),$this->dbHandle);
        
// return data or an empty string at failure
        
if($row mysql_fetch_assoc($res))
            return 
$row['d'];
        return 
"";
    }
    function 
write($sessID,$sessData) {
        
// new session-expire-time
        
$newExp time() + $this->lifeTime;
        
// is a session with this id in the database?
        
$res mysql_query("SELECT * FROM ws_sessions
                            WHERE session_id = '
$sessID'",$this->dbHandle);
        
// if yes,
        
if(mysql_num_rows($res)) {
            
// ...update session-data
            
mysql_query("UPDATE ws_sessions
                         SET session_expires = '
$newExp',
                         session_data = '
$sessData'
                         WHERE session_id = '
$sessID'",$this->dbHandle);
            
// if something happened, return true
            
if(mysql_affected_rows($this->dbHandle))
                return 
true;
        }
        
// if no session-data was found,
        
else {
            
// create a new row
            
mysql_query("INSERT INTO ws_sessions (
                         session_id,
                         session_expires,
                         session_data)
                         VALUES(
                         '
$sessID',
                         '
$newExp',
                         '
$sessData')",$this->dbHandle);
            
// if row was created, return true
            
if(mysql_affected_rows($this->dbHandle))
                return 
true;
        }
        
// an unknown error occured
        
return false;
    }
    function 
destroy($sessID) {
        
// delete session-data
        
mysql_query("DELETE FROM ws_sessions WHERE session_id = '$sessID'",$this->dbHandle);
        
// if session was deleted, return true,
        
if(mysql_affected_rows($this->dbHandle))
            return 
true;
        
// ...else return false
        
return false;
    }
    function 
gc($sessMaxLifeTime) {
        
// delete old sessions
        
mysql_query("DELETE FROM ws_sessions WHERE session_expires < ".time(),$this->dbHandle);
        
// return affected rows
        
return mysql_affected_rows($this->dbHandle);
    }
}
$session = new session();
session_set_save_handler(array(&$session,"open"),
                         array(&
$session,"close"),
                         array(&
$session,"read"),
                         array(&
$session,"write"),
                         array(&
$session,"destroy"),
                         array(&
$session,"gc"));