gpt4 book ai didi

php - 自动 session 到期

转载 作者:搜寻专家 更新时间:2023-10-31 21:15:57 26 4
gpt4 key购买 nike

我遇到了一个奇怪的场景。基本上在我正在做的每个网页上

session_start();
if(!isset($_SESSION['login']))
header("Location: login.php");

确保每个用户都先登录。我在 chrome 中工作,如果我登录到我的 Web 应用程序并打开任何页面,它会正常工作。同时,如果在另一个选项卡中登录到我的托管服务器,我将退出我的 Web 应用程序。如果我再次登录到我的应用程序,我将退出我的托管服务器!!

我做错了什么?我检查或设置 session 变量的方式有问题吗?

我正在按如下方式设置 session :

//if authentication successful
session_start();
$_SESSION['login'] = "1";

最佳答案

我有一个非常相似的问题,我认为发生这种情况只是因为在同一域的同一位置的两个同名 session 不能共存。

也许一个解决方案应该是使用 session cookie。您可以只为文件夹而不是整个域设置 cookie。这样我认为您可以同时管理 2 个 session ,但我不确定。

试试这个:

session_start();
setcookie(session_name(), session_id(), 0, '/public/');

/public/ 可能是您的站点所在的特定文件夹或应用程序路径(感谢 Paul 指出这一点)。

然后您将检查 session 是否已设置:

$session_cookie = 
isset($_COOKIE[ini_get('session.name')]) ?
$_COOKIE[ini_get('session.name')] :
null;

这可能行不通,因为另一个 session 可能“存储”在您的 Web 应用程序的根文件夹中。但是,如果您也能够为您的托管服务器执行上述操作,那么您应该可以解决您的问题。

您也可以尝试在 Web 应用程序中为 session 设置不同的名称。

希望这对您有所帮助。

关于php - 自动 session 到期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8835946/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com