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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP会话重合!一个人可以在没有登录的情况下以另一个人身份打开网站相关的知识,希望对你有一定的参考价值。

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

用户有时无法注销

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

我们使用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会话内部工作的一些问题。

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

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

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

答案

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

另一答案

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

以上是关于PHP会话重合!一个人可以在没有登录的情况下以另一个人身份打开网站的主要内容,如果未能解决你的问题,请参考以下文章

在没有 BHO 的情况下以编程方式确定 IE 窗口当前 URL

从 mysql 获取数据并以另一种形式使用

phpMyAdmin : 可以在不输入密码的情况下以非 root 用户身份登录,尽管该帐户有一个

在 codeigniter 中集成正常的 php 会话

在没有bom的情况下以utf-8保存文件

如何在一种情况下推送视图控制器,但在另一种情况下以模态方式呈现它?