Mhhh temo di non essermi spiegato o non aver compreso qualcosa.
L'ottimo articolo indicato evolve il concetto della sessione indubbiamente, ma opera analogamente a session_set_save_handler che consente di definire sei funzioni personalizzate per l'apertura, la lettura, la scrittura, la chiusura e la gc della sessione.
In pratica si definiscono le sei funzioni (che io utilizzo implementando su un db MySql) schematicamente:
codice:
funcion s_open(){
//TODO apertura sessione
}
function s_read(){
//TODO lettura sessione
}
function s_write(){
//TODO scrittura sessione
}
function s_close(){
//TODO chiusura sessione
}
function s_destroy(){
//TODO distruzione sessione
}
funcion s_gc(){
//TODO garbage collection sessione
}
session_set_save_handler("s_open","s_read","s_write","s_close","s_destroy","s_gc");
//la sessione parte regolarmente
session_start();
Il mio obiettivo è consentire un accesso unico ad un determinato profilo, se il profilo x è loggato e qualcun altro cerca di entrare con lo stesso account riceve un messaggio di arresto.
Per fare questo inserisco il SID nella tabella di login in modo tale che l'utente possa loggare solo se il campo SID è nullo.
Il problema è che in caduta della connessione (quindi non con procedura standard di logout che opera l'eliminazione del valore) il campo SID rimane pieno e quindi l'utente, rientrando, riceve comunque il blocco di accesso....dovrei far in modo che, se un utente trova il suo account loggato, prima di ricevere il blocco di accesso venga verificato se il SID è ancora collegato o meno!!!!