<?php require('session_mysql_handler.php'); $objSessionHandler = new MySQLSessionHandler(); session_set_save_handler($objSessionHandler, true); ?>
<?php class MySQLSessionHandler implements SessionHandlerInterface { public function open($savePath, $sessionName) { return TRUE; } public function read($sessionId) { try { $stmt = $mysqli->prepare("SELECT `session_data` FROM `sessions` WHERE `session_id` = ?"); $stmt->execute([$sessionId]); $stmt->bind_result($sessionData); $stmt->fetch(); $stmt->close(); return $sessionData ? $sessionData : ''; } catch (Exception $e) { return ''; } } public function write($sessionId, $sessionData) { $time = time(); try { $stmt = $mysqli->prepare("REPLACE INTO `sessions` (`session_id`, `created`, `session_data`) VALUES (?,?,?)"); $stmt->execute([$sessionId, $time, $sessionData]); $stmt->close(); return TRUE; } catch (Exception $e) { return FALSE; } } public function destroy($sessionId) { try { $stmt = $mysqli->prepare("DELETE FROM `sessions` WHERE `session_id` = ?"); $stmt->execute([$sessionId]); $stmt->close(); return TRUE; } catch (Exception $e) { return FALSE; } } public function gc($maxlifetime) { $past = time() - $maxlifetime; try { $stmt = $mysqli->prepare("DELETE FROM `sessions` WHERE `created` < ?"); $stmt->execute([$past]); $stmt->close(); return TRUE; } catch (Exception $e) { return FALSE; } } public function close() { return TRUE; } } ?>