Ciao a tutti!
Credo di chiedere un po troppo ma da solo non ci riuscirei a risolvere!
Mi sono 'avventurato' nella gestione delle sessioni attraverso i database.
Per ora ho fatto questo:
Codice PHP:
ini_set('session.gc_maxlifetime',20*60);
ini_set('session.gc_probability',50);
ini_set('session.gc_divisor',100);
function apertura($path,$nome){
$idSessione = session_id();
$tempo = time();
mysql_query("INSERT INTO sessioni SET sessionID='$idSessione', ultimoAccesso='$tempo'");
}
function chiusura(){
// ??? non so cosa metterci
}
function lettura($id){
$idSessione = session_id();
$q = mysql_query("SELECT sessionID,datiSessione FROM sessioni WHERE sessionID='$idSessione'");
$f = mysql_fetch_array($q);
//è giusto ritornare i dati di sessione in questo modo?
return $f['datiSessione'];
}
function scrittura($id,$dati){
$sessionID = session_id();
//ma come fa '$dati' a prendere il contenuto dell'array $_SESSION['']?
mysql_query("INSERT INTO sessioni SET datiSessione='$dati' WHERE sessionID='$sessionID'");
}
function distruzione($id){
$sessionID = session_id();
// qua devo inserire un controllo sul tempo prima di distruggere la sezione o automaticemnte allo scadere dei 20 minuti (impostati all'inizio) verrà azionata questa funzione?
mysql_query("DELETE FROM sessioni WHERE sessionID='$sessionID'");
}
session_set_save_handler('apertura','chiusura','lettura','scrittura','distruzione');
session_start();
Se avete guardato il codice avrete notato che ci sono dei commenti nelle parti che non riesco a capire. Potete aiutarmi a capire quelle cose?