• User Newbie

    sessioni alternative con i database

    Ciao a tutti!

    Mi sono avventurato nella gestione delle sessioni attraverso i database..
    Per ora ho fatto questo:

    [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[''] nel caso venisse richiesta questa funzione?
    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();[/PHP]

    Se avete guardato il codice avrete notato che ci sono dei commenti nelle parti che non riesco a capire.
    Potete aiutarmi a capirle?

    Questa è la tabella sul database:
    | id | sessionID | ultimoAccesso | datiSessione|