【发布时间】:2014-09-10 23:02:07
【问题描述】:
我正在尝试在某些 php 页面上使用 session_id(),但是每个文件之间的 id 都会发生变化,并且每次我刷新页面时都会发生变化。我放置了以下脚本,它应该在重新加载时增加,但它没有。
session_start();
if (!isset($_SESSION['hits'])) $_SESSION['hits'] = 0;
++$_SESSION['hits'];
echo '<p>Session hits: ', $_SESSION['hits'], '</p>';
echo '<p>Refresh the page or click <a href="', $_SERVER['PHP_SELF'],
'">here</a>.';
在我的 php.ini 文件中,我打开了 cookie 并设置了我的 save_path tp '/tmp'。
在实际文件夹中,有会话文件...所以我知道这不是文件写入问题。我还确保每个文件都是带有 bom 的 utf-8 以确保一致性。
如果您有任何其他的解决方案,请帮我解决这个问题。它快把我逼疯了。
谢谢!!!
【问题讨论】:
-
你是如何使用 session_id() 的?
-
您的代码在我这边运行良好,因此很可能是 PHP 配置或权限问题。
-
@Bilbonic 你看过你的服务器日志了吗?某处一定有错误或警告
-
实际上,您可以将文件转换为 UTF-8 没有 BOM 吗? BOM 可能被解释为页面内容而不是 PHP 代码,然后甚至在代码执行之前发送到浏览器,一旦完成,您的代码就无法再发送任何标题(因此没有设置会话 cookie),它应该触发
Headers already sent警告,但您的配置可能设置为隐藏警告。 -
对不起,我打错了。都是没有BOM的utf-8