PHP-会话和REST

PHP-会话和REST,php,session,cookies,session-cookies,Php,Session,Cookies,Session Cookies,我需要帮助来理解我做错了什么。 我正在构建RESTful API供内部使用。 我有两个端点-/login和/logout。 在登录时,我验证用户输入并创建会话-效果良好。 注销时,我想销毁会话,但它显示“会话\u destroy():试图销毁…中未初始化的会话” 代码如下: 登录: $api->post('/login', function () { if(some validations) { session_name('lalala'); session_start()

我需要帮助来理解我做错了什么。 我正在构建RESTful API供内部使用。 我有两个端点-/login和/logout。 在登录时,我验证用户输入并创建会话-效果良好。 注销时,我想销毁会话,但它显示“会话\u 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);

});
注销:

$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\u unset()之前


session\u start()之前使用
session\u cookie\u params()
而不是
setcookie(…)
添加
session\u start()
在logout.php文件的Beging处,您需要会话做什么?您能帮助我理解这背后的逻辑吗?我想结束这次会议。为什么我需要在之前启动它?您必须启动会话才能锁定会话文件。