class MySessionHandler implements SessionHandlerInterface { public function open($save_path, $name) { //echo "SessionHandler::open<br />"; return true; } public function close() { //echo "SessionHandler::close<br />"; return true; } public function read($id) { } public function write($id, $data) { if(($session = DB::get_row('SELECT * FROM `session` WHERE `session_identifier` = ?', array($id))) !== false) { } else { 'session_identifier' => $id, 'session_start_time' => $time, 'session_update_time' => $time, 'user_data' => NULL, 'user_ip' => get_ip(), 'user_host' => get_host(), 'user_agent' => get_agent() ); //return DB::insert(session', $session_data) !== false; } return true; } public function destroy($id) { return DB::query('DELETE FROM `session` WHERE `session_identifier` = ? LIMIT 1', array($id)) !== false; } public function gc($max_lifetime) { return DB::query('DELETE FROM `session` WHERE (? - `session_update_time`) > ?', array($time, $time + $max_lifetime)) !== false; } }
Jakieś 6 godzin siedzę, patrzę w ten monitor i... nic. Czy naprawdę nie ma funkcji, która "przerobi" mi dane w metodzie SessionHandler::read na takie, które akceptuje sesja? Przy powyższym kodzie dane sesji po prostu przepadają ponieważ przy przekazaniu ich do $_SESSION wykryty zostaje niepoprawny format (tak podejrzewam). Przekopałem naprawdę dużo stron i jedyna sensowna metoda jaką znalazłem to napisanie własnego modułu i skompilowanie go z PHP ^^