Php 会话数据仅在Chrome中丢失
我的问题与此线程中的问题类似(如果不完全相同): 但这条线索中的所有解决方案都不适合我。在我的PHP/MySQL应用程序中,只有Google Chrome出现了一个奇怪的行为。如果我在Firefox上试用,它可以工作,但Chrome不行 我导航到购物车中的某个地方,并在代码中的几个地方存储会话数据。不要担心我开始这个课程或者其他相关的事情,我已经在webappdev工作了11年,一切都很好 在所有浏览器中,我都可以Php 会话数据仅在Chrome中丢失,php,session,google-chrome,Php,Session,Google Chrome,我的问题与此线程中的问题类似(如果不完全相同): 但这条线索中的所有解决方案都不适合我。在我的PHP/MySQL应用程序中,只有Google Chrome出现了一个奇怪的行为。如果我在Firefox上试用,它可以工作,但Chrome不行 我导航到购物车中的某个地方,并在代码中的几个地方存储会话数据。不要担心我开始这个课程或者其他相关的事情,我已经在webappdev工作了11年,一切都很好 在所有浏览器中,我都可以var\u dump($\u SESSION)并取回我的数据,但在Chrome中
var\u dump($\u SESSION)
并取回我的数据,但在Chrome中,它不会保留数据。还要注意的是,会话确实被传递了,我可以查看网络监视器,看到正在发送的cookie以及与会话工作相关的许多其他内容,但是没有保留一个$\u会话['last\u viewsed\u element']
。我似乎也无法设置任何其他内容,所有内容都会丢失
编辑:
通过从会话切换到Cookie解决问题…在php ini文件中尝试设置
session.save_path=/path/to/your/tmp
在某些服务器上,有时会话需要显式直接会话文件保存在本地目录中,否则会发生一些奇怪的情况。毕竟,没有答案,问题仍然存在,我只是改为使用cookies,如果任何人在同一时间遇到chrome+wordpress的问题,不要浪费更多时间,切换到cookies…我遇到了这个问题,并且能够解决它。Chrome一直在寻找一个.ico文件,出于某种原因,它影响了它。一旦我把.ico文件放在站点的根目录中,一切都开始工作了。疯狂但真实。我使用的代码也有同样的问题。通过删除以下内容解决:
session_id($_GET['sid']);
session_write_close();
我有一个非常类似的问题,在我的案例中,问题是由于Chrome中缺少favicon.ico而调用的404。php调用了页脚,它改变了会话变量。
我希望这对某人有所帮助。我通过删除线路解决了问题:
base href="http://mysite/"
从HTML代码中的
head
标记。问题可能是您的服务器正在查找Favicon,如果找不到,服务器将抛出302重定向,这将终止会话变量。查看以下链接:
我相信问题在于PHP获取的请求与文件不匹配,然后无法正确处理404。我必须告诉Nginx将任何URL与favicon.ico匹配,然后返回404
以下是我对Nginx的看法:
if ($request_uri ~ 'favicon') {
return 404;
}
我也遇到了同样的问题,但是在使用ASP.NETMVC的IIS上。IE和Firefox做得很好,但在Chrome上我丢失了会话数据。最终发现一个404错误正在清除Chrome中的cookie。下面是我找到问题并解决问题的步骤。我建议其他人尝试:
好处是,调查这个问题帮助我找到了IIS中缺少的mime类型,这影响了所有浏览器上的更多页面。也有同样的问题,最终解决了。登录设置了与domain.com的会话,但在重定向中是www.domain.com。IE和FF似乎认为www和no www是相同的,但Chrome却不是。通过在网络日志中检查每个页面加载的主机找到。HA!我终于解决了 在PHP中执行
header()
重定向时,必须在重定向之后执行die()
。这只适用于除Chrome之外的所有浏览器
对于Chrome,您还必须在标题()之前执行会话\u write\u close()
sweeeeet success这立即解决了我的问题:转到chrome://settings/cookies
然后找到本地主机,然后删除其cookie。解决方案很简单,值得一试我找到了一个“解决方案”(不是问题,只是效果!!)。。。
如果在您的页面中使用ajax,ajax是异步的。。。
如果我调用一个在会话中工作的函数,而不是调用另一个在会话中工作的页面,那么有时第一次调用在第二次启动之前并没有完成,并且第二次的第一次覆盖响应会产生效果。
我解决了每个ajax调用中的async:false问题
Ext.Ajax.request({
url: '/io/resetsession.php',
**async: false**
});
Ext.Ajax.request({
url: '/io/loaddata.php',
**async: false**,
.....
});
我们昨天一整天都在讨论同样的问题
(对我们来说)解决这个问题的(似乎)是一个chrome更新
我们有45.0.2454.93版,自从更新到45.0.2454.99版后,问题就不再出现了。我也有类似的问题,我发现了非常奇怪的原因。
在我的例子中,css类中的一个图像url是错误的!!浏览器无法加载图像,并且由于该页面是带有密码字段的注册表单,因此出于安全原因,浏览器重置了会话。我不确定您的情况是否与我的类似。但对我来说,原因是URL的形成
使用chrome时,将URL键入为“”并在其中设置会话变量
使用“”重定向而不使用WWW.会话ID不会被重用
这解决了我的问题,希望这对您有所帮助您可能只是在开发环境中丢失了会话,这很可能是因为Chrome的“同源策略”。如果是这样,那么这就是您的解决方案