Ciao, volevo avere un po' di chiarimenti al riguardo.
In pratica in un progetto complesso per una PA, sto gestendo le sessioni in MySQL; il procedimento al momento è molto semplice, ma mi crea comunque dei problemi.
Esattamente ho creata una tabella nel database che riporta un id automatico, id utente, un nome di sessione a 128 caratteri ( l'hash creato a partire da alcuni dati univoci ) data di creazione, data di estinzione ( dopo due ore ) e un campo text in cui inserire vari dati. Sto studiando, ma per ora in embrione, le nuove funzioni per JSON in MySQL.
In pratica quando un utente effettua il login il programma non fa altro che prendere l'id utente dalla tabella utenti, prendere dalla stessa tabella alcuni dati, l'IP del PC di login, la stringa del browser se c'è e creare un hash in SHA512 da usarsi come nome di sessione, crea la data di creazione, la scadenza a +2 ore e basta.
Quindi registra tutto nel database controllando che l'ID utente non sia già inserito, in quel caso sovrascrive i dati; la sovrascrittura inoltre avviene ogni volta che l'utente aggiorna la pagina o naviga il sito, in questo caso aggiorna gli orari.
In ogni pagina un richiamo ad un file esterno, controlla tutta la sessione e aggiorna la sessione $_SESSION['login'] un array che contiene l'id utente, e il nome. Unico caso di utilizzo delle "normali" sessioni del PHP.
Mi rendo conto che così come l'ho descritta è già difficile da leggerla, ma per ora il sistema regge, anche se a volte si perde la sessione e si "slogga" da solo, richiedendo di rifare il login.
C'è da dire che tutto funziona dentro una intranet e che spesso questa è sovraccarica, ma dai log di sistema non si riesce a comprendere il problema.
Comunque a parte questo, voi come procedereste nel creare un sistema di sessione in database?