Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 会话数据仅在Chrome中丢失_Php_Session_Google Chrome - Fatal编程技术网

Php 会话数据仅在Chrome中丢失

Php 会话数据仅在Chrome中丢失,php,session,google-chrome,Php,Session,Google Chrome,我的问题与此线程中的问题类似(如果不完全相同): 但这条线索中的所有解决方案都不适合我。在我的PHP/MySQL应用程序中,只有Google Chrome出现了一个奇怪的行为。如果我在Firefox上试用,它可以工作,但Chrome不行 我导航到购物车中的某个地方,并在代码中的几个地方存储会话数据。不要担心我开始这个课程或者其他相关的事情,我已经在webappdev工作了11年,一切都很好 在所有浏览器中,我都可以var\u dump($\u SESSION)并取回我的数据,但在Chrome中

我的问题与此线程中的问题类似(如果不完全相同):

但这条线索中的所有解决方案都不适合我。在我的PHP/MySQL应用程序中,只有Google Chrome出现了一个奇怪的行为。如果我在Firefox上试用,它可以工作,但Chrome不行

我导航到购物车中的某个地方,并在代码中的几个地方存储会话数据。不要担心我开始这个课程或者其他相关的事情,我已经在webappdev工作了11年,一切都很好

在所有浏览器中,我都可以
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。下面是我找到问题并解决问题的步骤。我建议其他人尝试:

  • 在Chrome上,使用工具->开发者工具。刷新页面,使“开发人员工具”开始显示数据

  • 在开发人员工具上,检查资源->Cookies。在成功登录之后,我有2个cookie用于我正在测试的域。在导航到我丢失会话的页面时,其中一个cookie不再显示。该屏幕截图是在修复后拍摄的,显示了两个cookie:

  • 现在检查网络选项卡。仔细查找任何有错误的资源(html/image/css/js/…)。我有一个404错误的字体文件。404错误是由IIS中缺少mime类型引起的。 修复404错误清除了Chrome中的问题。该屏幕截图在修复后再次拍摄,所有资源均处于OK状态:


  • 好处是,调查这个问题帮助我找到了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的“同源策略”。如果是这样,那么这就是您的解决方案