PHP session_id在刷新时从不相同

时间:2014-09-10 23:02:07

标签: php session

我正在尝试在某些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&#39; / tmp&#39;。

在实际文件夹中,有会话文件......所以我知道这不是文件写入问题。我还确保每个文件都是utf-8,以确保一致性。

如果您能想到任何其他解决方案,请帮我解决此问题。这让我疯了。

感谢!!!

2 个答案:

答案 0 :(得分:2)

我能想到的3种可能性是:

  1. 您如何致电session_id()?在您的问题中包含该代码。如果您使用任何参数调用它,它会将会话ID覆盖到您传递的任何参数。
  2. 您的浏览器是否启用了Cookie?会话ID以cookie的形式发送到浏览器。
  3. 您是否随时致电session_destroy()?这将从服务器中删除会话数据,并导致在后续网页浏览中启动新会话。

答案 1 :(得分:-3)

这是因为每次刷新页面时都会创建一个新会话。您必须将会话开始语句括在if。

if(session_id() == ''){ session_start(); }