php会话不存储在chrome中

时间:2013-05-13 12:04:45

标签: php google-chrome session

我已经有一段时间没有使用php了,回到我的一个项目只是为了找出会话变量没有存储。它出乎意料,因为我最后一次检查,它工作,我没有使用PHP(因此没有更改代码或配置)。

情况如下:会话不存储在页面中(我可以保存它并在页面上显示相同的内容,但是当我刷新时 - 没有任何变化)。

我看了PHP Session data not being saved并复制了这个例子:

<?php
session_start();
if(isset($_SESSION['views']))
    $_SESSION['views'] = $_SESSION['views']+ 1;
else
    $_SESSION['views'] = 1;

echo "views = ". $_SESSION['views'];
echo '<p><a href="page1.php">Refresh</a></p>';

但没有任何变化:我仍有观点= 1。

尽管如此我还没有改变我的配置,但我仍然看着phpinfo(): enter image description here

我检查了我写入文件夹/ tmp的权限 - 它们没问题,而且每次刷新后都会出现一个新文件。

然后我检查了其他浏览器中的工作:令我惊讶的是它在firefox中运行:数字正确地增加了。

所以情况:在chrome中它不起作用,在Firefox中它起作用。我使用chrome作为默认值。我还记得当它切换到闪烁时使用chrome选项,但据我记得我改变了一切。

知道如何修复Chrome中的php会话吗?

P.S:

  • Cookie已启用Chrome
  • 会话文件在/ tmp我试图将它们全部删除,稍后我用chrome刷新页面 - 出现新文件
  • 在标题中我发送Cookie:PHPSESSID = mystring但没有会话ID

5 个答案:

答案 0 :(得分:2)

这是Chromium中的一个已知问题。 Issue 114877

将一个favicon放在根文件夹中,这应该可以解决您的问题。

答案 1 :(得分:0)

启用Cookie并退出Chrome中的隐身(隐私浏览)。

编辑:尝试将session.cache_expire设置回180(默认值)

答案 2 :(得分:0)

在使用不同浏览器的php会话时,我常常遇到一些边界情况。

如果在echo声明之前使用session_write_close(),您是否可以确认代码示例是否有效?

另外,您应该考虑将会话保存到另一个存储而不是默认 - 在tmp文件夹中的文件中。 Memcache,redis,数据库都是可扩展的选项。

答案 3 :(得分:0)

尝试使用前缀session.save_path = "/tmp"php.ini中评论;指令。

因此,重新启动apache后,phpinfo()应为no value显示session_save_path

答案 4 :(得分:0)

请在php.ini中查看会话使用cookie。如果为零则将其激活为1 session.use_cookies = 1