Dzięki za tą funkcję, nie wiedzałem o jej istnieniu.
Nie rozumiem tylko tej części manuala:
CODE
/*********************************************
* UWAGA: Musisz sam zaimplementować obsługę *
* zbierania śmieci (gc) *
*********************************************/
function gc ($maxlifetime)
{
return true;
}
Co powinna robić funkcja gc?
Przepraszam, ze dwa posty pod sobą, ale wiem, że inaczej IPB nie wyświetli tego w aktywnych tematach.
Poczytałem o tej funkcji, jednak nie wszystko zrozumiałem. Troche kodu:
CODE
mysql_connect("localhost", "login", "pass");
mysql_select_db("dbname");
function sess_open($sess_path, $sess_name) {
return true;
}
function sess_close() {
return true;
}
function sess_read($sess_id) {
$result = mysql_query("SELECT `Data` FROM sessions WHERE SessionID = '$sess_id';");
if (!mysql_num_rows($result)) {
$CurrentTime = time();
$sess_id = session_regenerate_id();
mysql_query("INSERT INTO sessions (SessionID, DateTouched) VALUES ('$sess_id', $CurrentTime);");
return '';
} else {
$content = mysql_fetch_assoc($result);
mysql_query("UPDATE sessions SET DateTouched = $CurrentTime WHERE SessionID = '$sess_id';");
return $content['Data'];
}
}
function sess_write($sess_id, $data) {
$CurrentTime = time();
mysql_query("UPDATE sessions SET Data = '$data', DateTouched = $CurrentTime WHERE SessionID = '$sess_id';");
return true;
}
function sess_destroy($sess_id) {
mysql_query("DELETE FROM sessions WHERE SessionID = '$sess_id';");
return true;
}
function sess_gc($sess_maxlifetime) {
$CurrentTime = time();
mysql_query("DELETE FROM sessions WHERE DateTouched + $sess_maxlifetime < $CurrentTime;");
return true;
}
session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc");
session_start();
?>
Pisałem (a właściwie kopiowałem) w oparciu o jeden ze znalezionych w sieci artykułów. Teraz moje pytania brzmi:
Czy sprawdzanie grupy powinno odbywać się wewnątrz funkcji sess_read() czy powinienem po session_start() zarejestrować tą zmienną i dopiero wtedy sprawdzić z bazą danych uprawnienia tejże grupy?