Originariamente inviato da neroux
Per me funzionerebbe, che session handler usi?
codice:
session_set_save_handler("apertura", "chiusura", "lettura", "scrittura", "distruzione", "spazzino");
guarda sto usando un codice trovato qui sul forum in un'altra discussione per salvare le sessioni su db.. sto vedendo un pò come funziona... ora te lo posto tutto così facciamo prima...
Codice PHP:
<?
//configurazioni di alcuni parametri del file php.ini
ini_set('session.use_cookies',1); //attivo i cookies di sessione
ini_set('session.use_only_cookies',1); //informa di utilizzare solo gli ID dei cookies in modo tale da rifiutare quelli che vengono propagati da url
ini_set('session.save_handler','user'); //dice al php che dovrà usare i gestori definiti da me
ini_set('session.gc_probability',100); // setta la probabilità che venga eseguito il garbage collector(spazzino) al 100%
ini_set('session.gc_maxlifetime',60); //le sessioni scederanno dopo 60 secondi dalla creazione
function apertura($nome,$idSessione){ // questa funzione verrà richiamata da "session_start()"
session_cache_expire(1); // i file di sessione saranno validi per 4 ore(missa che questo non mi serve)
session_set_cookie_params(60*1); //il cookie di sessione sarà valido per 4 ore
return true;
}
function chiusura(){ // questa funzione verrà chiamata a fine sessione
return true;
}
function lettura($idSessione){
include 'conn.php';
$qqq = mysql_query("SELECT id,idSessione,authorized FROM sessioni WHERE idSessione='$idSessione'");
if ($f = mysql_fetch_array($qqq)) {
return $f['authorized'];
$time = time();
mysql_query("UPDATE sessioni SET time='$time' WHERE idSessione='$idSessione'");
} else {
return '';
}}
function scrittura($idSessione, $dati){
include 'conn.php';
$qs = mysql_query("SELECT idSessione FROM sessioni WHERE idSessione='$idSessione'");
$dati = mysql_real_escape_string($dati);
$time = time();
if($fs = mysql_fetch_array($qs)){
mysql_query("UPDATE sessioni SET authorized='$dati', time='$time' WHERE idSessione='$idSessione'");}
else{
if($dati){
mysql_query("INSERT INTO sessioni SET idSessione='$idSessione', authorized='$dati', time='$time'");}}
return true;}
function distruzione($idSessione){
include 'conn.php';
if(mysql_query("DELETE FROM sessioni WHERE idSessione='$idSessione'")){
return true;
}}
function spazzino($maxlifetime){
include 'conn.php';
mysql_query("delete * from sessioni where time+$maxlifetime < ".time());
}
session_set_save_handler("apertura", "chiusura", "lettura", "scrittura", "distruzione", "spazzino");
session_start();
?>