gpt4 book ai didi

internet-explorer - CakePHP Cookie/ session 问题

转载 作者:行者123 更新时间:2023-12-03 12:15:29 25 4
gpt4 key购买 nike

我的CakePHP应用程序出现问题。这似乎仅在IE中发生,并且仅在某些计算机上发生。不过,它在正在发生的计算机上是一致的。

问题一:
用户已登录并在https://example.com/users/view页面上,然后单击注销。用户被重定向到http://example.com,并且似乎已注销,直到用户访问另一个https页面并且他们仍然登录。他们可以按需要多次单击注销,但是它们始终登录到https上并且只能注销http。

问题二:
用户在https://example.com/users/signin上登录后,他们被重定向到http://example.com,现在似乎已登录。用户转到https://example.com/admin/slides尚不知道,但现在已注销,单击任何其他页面(或只是刷新其当前页面)都会询问他们。重新登录。

我不知道发生了什么事。我已经阅读并尝试了关于这两个类似问题的解决方案:Session not saving when moving from ssl to non-sslCookie not renewing/overwriting in IE,但是我仍然遇到相同的问题。

到目前为止,我注意到的唯一线索(而且我不知道这是否意味着什么)是当我在HTTP页面上调试$_SESSION$this->Session->read()时,始终只有$ this-> Session-> read()返回一个值。在HTTPS页面上,某些总是返回相同的值,而其他总是返回$ this-> Session-> read()的值。

例如,http://example.comhttps://example.com/users永远不会看到$ _SESSION,https://example.com/carts总是会看到$ _SESSION。我不确定,但是我认为也许应该在安全页面上看到它,并且由于某些页面可能看不到什么地方出了问题,但是当我检查代码时,我发现并没有区别,这表明为什么要这样做而一个不这样做。 t。

另外,如果我将$this->Session->destroy()添加到AppController中的beforeFilter,则所有页面(甚至HTTP)都可以看到$ _SESSION。我实际上不是在应用程序中使用$ _SESSION,我只是认为这可能是出了什么问题的线索。

更新

我接受了Gustav Bertram的建议,并查看了用户代理字符串。我将用户代理字符串与出现问题的计算机上的IE与未出现问题的计算机上的IE进行了比较。除了发生问题的用户代理字符串中包含“google chrome chrome frame”外,它们都是相同的。我从该计算机上卸载了Google Chrome浏览器内嵌框架,然后重新启动,然后再次尝试,该问题似乎已解决。

如果这是真正的原因,那么简单的解决方案是让用户卸载Chrome框架。但是,我想知道是否有解决方法可以使他们安装chrome框架并仍然可以工作。

最佳答案

尝试将以下内容添加到您的core.php文件中:

Configure::write('Session.checkAgent', false);
Configure::write('Session.ini',array('session.cookie_secure' => false, 'session.referer_check' => false));

这些参数将强制cookie甚至通过Google Chrome Frame持久保存。这将同时设置PHP和CakePHP的设置,以允许cookie通过http和https持久化。

关于internet-explorer - CakePHP Cookie/ session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969719/

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