Bro*_*wno 6 php session-cookies missing-cookies laravel laravel-3
具有Webmin,Apache Centos 6,Laravel应用程序和旧数据库模式的新VPS服务器.所有在旧共享主机上工作正常,但由于某种原因,在VPS上Laravel的会话存储(Laravel 3.0)不再适用于Safari或Internet Explorer.
似乎会话ID只是没有保存在客户端上.是强制Laravel会话ID保存在客户端浏览器上的好方法吗?
当Chrome/Firefox看起来工作得很好时,Safari/IE存储可能会产生此问题的Cookie的方式有何不同?
Rob*_*bie 15
如果服务器上的时间/时区不正确,Cookies可能会扭曲.检查服务器上的时区/时间设置.
请注意,您需要检查操作系统中的实际时间/时区,而不仅仅是PHP中的时区.但您可以通过将PHP(date_default_timezone_set())中的时区设置为当地时间并向PHP询问日期来验证使用PHP ; 如果它不匹配则服务器设置不正确.请注意,在PHP中调整时区以使其看起来正确无法解决cookie问题,您必须使用操作系统中的"日期"正确设置操作系统时间/时区.
验证这是否是问题的另一种方法是:将Cookie设置为在一年内到期 - 它们是否显示?如果时区错误,那么这些将显示(>时区差异),但2小时的cookie可能不会(
原因:由于使用实际时间设置cookie(即"此cookie将于2013年7月25日15:13 GMT到期").如果本地计算机的设置与服务器不同,则cookie可能会在发送之前显示已过期.一些浏览器对此进行了更正(FF曾经也是如此,Chrome现在也可以).
由于此处更改的是服务器,请检查服务器上的时间.(另外,请仔细检查自己的计算机).
您需要检查新服务器上的所有内容是否与旧服务器相同...较旧或较新版本的软件可以做到这一点,甚至可能不同的 htaccess 设置...
需要考虑的其他 2 件事...
也许文件得到了在移动过程中损坏...或者服务器端有一些东西搞砸了...我曾经使用的免费托管公司有弹出窗口,并且由于这些弹出窗口,您无法使用常规站点地图进行谷歌索引,因为弹出窗口向您的页面注入了一些内容。
我也刚刚发现这个...会话不会初始化或记住请求之间的状态
我不知道的是,对 setcookie 的调用会自动在域前面加上句点 (.) 以实现兼容性。在根级域名上,它将允许该 cookie 在所有子域上被访问。没有意识到这一点,给了我 2 个会话 cookie,然后发生了很大的混乱。
似乎有两种方法可以解决这个问题:
Run Code Online (Sandbox Code Playgroud)Set the cookie configuration value to something else. Set the domain to "www.example.org" so that it is only available to the root-level domain name.
[已解决] 会话有时不会跨请求持续存在