Я пытаюсь настроить систему входа/выхода пользователя с помощью php и mysql. Я нашел документацию по этому вопросу здесь: http://phpmaster.com/writing-custom-session-handlers/. Я пытаюсь следовать вместе с ним (я тоже вытягивался из других источников, но это главный).Настройка php session (session_set_save_handler)
Вот некоторые из моего кода от «my_session_handler.php»:
class MySessionHandler implements SessionHandlerInterface {
private $path = session_save_path();
private $name = session_name();
private $sessionId = session_id();
function open($path, $name) {
$db = new PDO("mysql:host=localhost;dbname=itit", "root", "bonjour3");
$sql = "INSERT INTO session SET session_id =" . $db->quote($sessionId) . ", session_data = '' ON DUPLICATE KEY UPDATE session_lastaccesstime = NOW()";
$db->query($sql);
...
Мой вопрос, где находятся «$ путь» и «$ название» переменные, поступающие из в примере я цитировал выше? Я объявил их как частные переменные и использовал некоторые функции, чтобы делать то, что, как я думаю, нужно сделать. Но на веб-сайте, с которым я следую, - ни одна из этих переменных не объявлена - вместе с $ sessionId. Я вижу, что функция чтения возвращает $ data. Поэтому я использовал его в функции «написать» следующим образом:
function write($sessionId, this.read($sessionId)) {
$db = new PDO("mysql:host=localhost;dbname=itit", "root", "bonjour3");
$sql = "INSERT INTO session SET session_id =" . $db->quote($sessionId) . ", session_data =" . $db->quote($data) . " ON DUPLICATE KEY UPDATE session_data =" . $db->quote($data);
$db->query($sql)
}
Я делаю это правильно?
большое спасибо за объяснение! – ewizard
barmar ... у меня есть еще один вопрос - мне нужно действительно использовать функции в MySessionHandler? Например ... мне нужно использовать функцию close(), когда я хочу закрыть сеанс? Или обработчик сеанса делает все это для меня? – ewizard
Вы не используете эти функции напрямую, они используются обработчиком сеанса. Когда приложение вызывает 'session_close()', обработчик сеанса вызывает вашу функцию закрытия. – Barmar