PHP会话重合!一个人可以在没有登录的情况下以另一个人身份打开网站

时间:2018-04-09 07:25:05

标签: php cookies session-variables session-cookies

我有一个登录网站。 该脚本现在已经工作了几个月。但是一周以来 我们注意到,当我们打开网站时,它已经被其他人登录了。

用户有时无法注销

这个问题现在变得非常普遍。它一直在发生。有时用户无法登录。当他们这样做时,他们有时会在以前登录帐户的帐户中结束。

我们使用php SESSIONS来实现登录。

//Login

//Step 1 Facebook Login
//Step 2 Check db or add to db
//Step 3 below

$_SESSION['logouturl'] = $logouturl;
$_SESSION['loggedin'] = true;
$_SESSION['user_data'] = $user_data;
header("Location: $url");

这是注销脚本:

//logout
session_start();
session_destroy() ;
if(isset($_GET['redirect']) && !empty($_GET['redirect']))
{
    $url=$_GET["redirect"];
}
else {
    $url="http://www.website.com/";
}
header("location:$url");

我发现这是php会话内部工作的一些问题。

更新: 感谢所有帮助过的人!

不,我们没有找到问题的解决方案。客户正在使用经销商托管。也许当一个站点影响另一个站点时,它必须对配置做一些事情。

我们设置了一个新托管并在那里安装了相同的脚本。一切都很好,生活很美好!

2 个答案:

答案 0 :(得分:0)

最好的方法是在用户登录系统时生成令牌,并将其存储在localstorage中。看一下这个链接https://www.sitepoint.com/php-authorization-jwt-json-web-tokens/

答案 1 :(得分:-1)

您应该在登录时使用session_start();,在退出时使用session_destroy();