Session 如何为CakePhp设置会话变量以与Chrome一起使用?
我正在使用CakePhp开发一个网站。当上传到服务器并使用Firefox进行测试时,一切都很好 使用Google Chrome时,似乎没有创建会话变量 如果我尝试访问主页,我将首先重定向到登录页面。登录后,它不会将我重定向到主页,而是再次重定向到登录页面 我注意到,会话变量不是用Chrome创建的,但可以用Firefox正常工作。查看此页面 这是我的建议 因为使用浏览器时应该更改服务器行为?我不知道Chrome对referer做了什么,但它似乎在某些方面改变了它。 cakePHP强制将session.referer_check的设置为true,从而检查具有相同PHPSESSID的多个请求是否来自同一url。Session 如何为CakePhp设置会话变量以与Chrome一起使用?,session,cakephp,google-chrome,session-variables,Session,Cakephp,Google Chrome,Session Variables,我正在使用CakePhp开发一个网站。当上传到服务器并使用Firefox进行测试时,一切都很好 使用Google Chrome时,似乎没有创建会话变量 如果我尝试访问主页,我将首先重定向到登录页面。登录后,它不会将我重定向到主页,而是再次重定向到登录页面 我注意到,会话变量不是用Chrome创建的,但可以用Firefox正常工作。查看此页面 这是我的建议 因为使用浏览器时应该更改服务器行为?我不知道Chrome对referer做了什么,但它似乎在某些方面改变了它。 cakePHP强制将sessi
如php.net上发布的: 如果为session.referer\u检查指定了值,则可以运行 当有人访问您的站点并试图登录时,会遇到困难 使用错误大写的URL。登录将失败,因为对 session_start()将导致现有会话被丢弃,并且 正在创建一个新的。登录时,这将成为一个更大的问题 后跟一个标题(“位置:…”)重定向,因为 页面顶部的会话_start()将失败 这两种设置加在一起,你就搞得一团糟。我首先通过在app/webroot/index.php中强制设置session_start()找到了一个快速修复方法。但经过更多的阅读和调试,我终于找到了罪魁祸首 破解你的修复程序 没有简单的方法可以阻止cake设置此设置,但您可以在session.save configure key中定义自己的会话处理程序。
只需在app/config/中创建名为session_custom.php的文件,并设置Configure::write('session.save','session_custom');在core.php文件中。
在该文件中,只需删除以下行(从cake_session.php复制/粘贴) 检查这一页 这是我的建议 因为使用浏览器时应该更改服务器行为?我不知道Chrome对referer做了什么,但它似乎在某些方面改变了它。 cakePHP强制将session.referer_check的设置为true,从而检查具有相同PHPSESSID的多个请求是否来自同一url。
如php.net上发布的: 如果为session.referer\u检查指定了值,则可以运行 当有人访问您的站点并试图登录时,会遇到困难 使用错误大写的URL。登录将失败,因为对 session_start()将导致现有会话被丢弃,并且 正在创建一个新的。登录时,这将成为一个更大的问题 后跟一个标题(“位置:…”)重定向,因为 页面顶部的会话_start()将失败 这两种设置加在一起,你就搞得一团糟。我首先通过在app/webroot/index.php中强制设置session_start()找到了一个快速修复方法。但经过更多的阅读和调试,我终于找到了罪魁祸首 破解你的修复程序 没有简单的方法可以阻止cake设置此设置,但您可以在session.save configure key中定义自己的会话处理程序。
只需在app/config/中创建名为session_custom.php的文件,并设置Configure::write('session.save','session_custom');在core.php文件中。
在该文件中,只需删除以下行(从cake_session.php复制/粘贴)
如果我是对的,那么您正试图通过从url检索get值来设置会话 如果是这样,我建议您使用经典的php风格的url,如 和使用 $\u在控制器中获取['id']以检索值
我可以这么说,因为我不久前也遇到了同样的问题,我在很多博客中搜索了一个合适的解决方案,但没有找到任何解决方案,但使用上述方法解决了我的问题p如果我是对的,那么您正试图通过从url检索get值来设置会话 如果是这样,我建议您使用经典的php风格的url,如 和使用 $\u在控制器中获取['id']以检索值
我可以这么说,因为我不久前也遇到了同样的问题,我在很多博客中搜索了一个合适的解决方案,但没有找到任何地方,而是使用上述方法解决了我在你的
app/Config/core.php中的p
Configure::write('Session', array(
'defaults' => 'cake',
'timeout' => 14400, // 4 hours
'cookieTimeout' => 14400, // 4 hours
'cookie' => 'cookiename',
)
);
检查“cookie”中没有空格,即使下划线也可能导致问题
不久前有这个问题,我花了一段时间才解决…在你的app/Config/core.php
Configure::write('Session', array(
'defaults' => 'cake',
'timeout' => 14400, // 4 hours
'cookieTimeout' => 14400, // 4 hours
'cookie' => 'cookiename',
)
);
检查“cookie”中没有空格,即使下划线也可能导致问题
不久前我就遇到了这个问题,我花了一段时间才解决…1)你在Chrome上禁用了Cookie吗?2) 它在Safari中有效吗?3) 你能提供一个链接吗?1)你在Chrome上禁用cookie了吗?2) 它在Safari中有效吗?3) 你能提供一个链接吗?看起来不像cakephp解决方案看起来不像cakephp解决方案