Jen malé nakopnutí (za chyby neručím)Načtení session
if (isset($_COOKIES["session"])) {
$hash = $_COOKIES["session"];
$res = mysql_query("SELECT `data` FROM `session` WHERE `hash`='$hash'")
$data = mysql_fetch_row($res);
$sdata = $data[0];
$mysession = unserialize($sdata);
$mysession["dirty"] = 0;
$mysession["id"] = $hash;
}
Aktualizace session
if (isset($mysession) && $mysession["dirty"] == 1) {
$hash = $mysession["hash"];
unset($mysession["hash"]);
unset($mysession["dirty"]);
$sdata=serialize($mysession);
mysql_query("REPLACE `session` (`hash`,`data`,`expires`)VALUES('$hash','$sdata',NOW() + INTERVAL 1 HOUR)");
}
Vyrobení session je podobně. Ještě bych tam z bezpečnostních důvodů vrazil addslashes a stripslashes u dat vkládaných a čteních z DB
z $mysession se pak pracuje stejně jako se $_SESSION. Jen pozor, že není superglobální, takže ve funkcích se musí deklarovat jako global. Při změně hodnot v poli se musí na konec udělat $mysession["dirty"] = 1 |