【问题标题】:Session is not working properly on Chrome [duplicate]会话在 Chrome 上无法正常工作 [重复]
【发布时间】:2018-05-25 12:42:48
【问题描述】:

虽然听起来很奇怪,但我对仅在 Chrome 下发生的会话有疑问。

这里是场景:

我在控制器中有一个方法search

public function search()
{
    $keyWord = htmlspecialchars(strip_tags($this->get['keyword']));
    if(mb_strlen($keyWord) < 3){
        $this->flashMessage->warning('keyword is too short');
        redirect(SITE_ADDR . '/forum');
    }
   ......
}

简单明了 - 如果来自 $_GET 的关键字少于 3 个字符 - 在 $_SESSION 中保存一条消息并重定向。但是,如果我进入搜索页面(例如site.com/forum/search/?keyword=fff)(注意 $_GET 中有 3 个字符)并开始快速刷新,错误消息是随机设置的,但永远不会调用重定向函数。我尝试通过在$this-&gt;flashMessage-&gt;warning 之后插入exit(); 来停止脚本,并且脚本停止时没有问题,但从未调用重定向函数。对于 1 或 2 个字符,重定向没有问题。当错误消息甚至不应该在会话中设置时,仅适用于 3 个或更多字符。

这只发生在 Chrome 中。我尝试了 Firefox 和 Opera,没有这样的问题。我尝试隐身但没有任何改变。有人知道为什么会这样吗?

我没有使用框架或任何东西。

【问题讨论】:

  • 好吧,我没有看到任何与 PHP SESSION 相关的代码,所以除了猜测之外,这有点困难。您也没有在此处显示任何代码,如果不应该设置它会清除警告(一旦设置,它将保持设置直到您清除它,或者会话到期)。请提供更多信息。
  • 我知道为什么请看我的第二个帖子。

标签: php session


【解决方案1】:

我找到了发生这种情况的原因。谁会想到?

Session data lost in Chrome only

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多