Мне нужна помощь в понимании того, что я делаю неправильно. Я создаю RESTful API для внутреннего использования. У меня есть 2 конечных точки -/login и /logout. При входе в систему я проверяю ввод пользователя и создаю сеанс - работает хорошо. При выходе из системы я хотел бы уничтожить сеанс, но он говорит: " session_destroy(): попытка уничтожить неинициализированный сеанс в... "
Вот код:
Авторизоваться:
$api->post('/login', function () {
if(some validations)
{
session_name('lalala');
session_start();
session_regenerate_id(true);
setcookie(session_name(), session_id(), 0, '/', 'xxx.xxx.xxx.xxx', false, true);
}
});
Выйти:
$api->post('/logout', function () {
session_unset();
session_destroy(); // here it fails
setcookie('lalala', "", 1);
setcookie('lalala', false);
unset($_COOKIE);
});
Обратите внимание, что я использую IP-адрес вместо имени домена. Я не верю, что есть разница, но для вашего внимания.
Не могли бы вы помочь мне понять, что здесь не так?
Вы должны позвонить:
session_name('lalala');
session_start();
перед session_unset()
Вместо setcookie(...)
используйте session_set_cookie_params()
перед session_start()
session_start();
в начале файла logout.php