【问题标题】:PHP - Sessions and RESTPHP - 会话和 REST
【发布时间】:2015-03-23 13:20:03
【问题描述】:

我需要帮助来了解我做错了什么。 我正在构建 RESTful API 供内部使用。 我有 2 个端点 - /login 和 /logout。 登录时,我正在验证用户输入并创建会话 - 效果很好。 注销时我想销毁会话,但它显示“session_destroy(): Trying to destroy uninitialized session in...

代码如下:

登录:

$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 地址而不是域名。我不认为有区别,但请注意。

你能帮我理解这里有什么问题吗?

【问题讨论】:

  • logout.php文件的开头添加session_start();
  • 你需要会话做什么?
  • 你能帮我理解这背后的逻辑是什么吗?我想终止会话。出于什么原因我需要先启动它?
  • 您必须启动会话才能获得会话文件的锁定。

标签: php session cookies session-cookies


【解决方案1】:

你必须打电话:

session_name('lalala');
session_start();

session_unset()之前

session_start()之前使用session_set_cookie_params()而不是setcookie(...)

【讨论】:

    猜你喜欢
    • 2011-04-11
    • 1970-01-01
    • 2012-08-01
    • 2023-04-09
    • 2011-08-07
    • 2015-10-14
    • 2012-02-15
    • 2014-07-18
    • 1970-01-01
    相关资源
    最近更新 更多