【问题标题】:php session destroyed on chrome new windowphp会话在chrome新窗口上被破坏
【发布时间】:2014-05-27 18:28:36
【问题描述】:

我正在设置一个会话以访问我的网站中的管理区域,出于安全目的我在事后进行检查,我检查会话是否已设置的方式如下:

session_start();
if($_SESSION['LOGIN_CHECK'] == true)
{

}
else
{
    header("location:login.php");
}

这在 Firefox 和 Chrome 中运行良好,但是当我从 JavaScript 打开一个新窗口时(是的,我打开的页面也有 session_start()):

javascript: window.location.href = 'http://www.whatever.com/admin/other/'

它适用于 Firefox,但在 Chrome 中,会话被删除...

有什么提示吗?

【问题讨论】:

  • 会话由服务器而不是浏览器设置。此外,如果您在 Firefox 中创建会话,然后在 Chrome 中打开该页面,则它不会是同一个会话。
  • 你的意思是:if(isset($_SESSION['LOGIN_CHECK'])){} ??
  • 从您的帖子中不清楚,但是如果会话 ID 附加到 URL,它将不会附加到 javascript 的,因此当该 js 链接被访问时会丢失。请改用 cookie。
  • 罗伯特,你误会了我,我没有从一个浏览器跳转到另一个浏览器,只是说会话在使用 Firefox 导航时有效,但在 chrome 中无效。
    我不是说 if(isset($_SESSION['LOGIN_CHECK'])){} 因为当我开始会话时,我已将 LOGIN_CHECK 设置为 true:$_SESSION['LOGIN_CHECK'] = true;我在链接中使用 Javascript 来打开新地址 whatever.com/admin/other'"> 这样当我使用 firefox 时会话仍然有效。

标签: javascript php google-chrome session


【解决方案1】:

问题很简单;为“mydomain.com”设置的 cookie 没有为“www.mydomain.com”设置,仅此而已。现在一切正常。

感谢您的宝贵时间!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-31
    • 2012-10-16
    • 2016-04-28
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    相关资源
    最近更新 更多