每次执行session_start时都会有不同的会话ID

时间:2011-04-27 00:23:59

标签: php session sessionid

我有以下源代码

session1.php

<?php

session_start();
echo session_id();

?>

session2.php

<?php

session_start();
echo session_id();

?>

当我访问session1.php然后访问session2.php时,我获得了不同的输出。

为什么要这样做?

4 个答案:

答案 0 :(得分:3)

浏览器未将会话cookie发送回服务器。这可能有两个原因。

  1. 浏览器配置为不向服务器发送cookie。您无法强制浏览器发送cookie。在这种情况下,您唯一的选择是在URL中传递会话标识符,尽管这通常不是一个好主意。
  2. 服务器配置为不使用cookie作为会话标识符(通过session.use_cookies配置选项)。

答案 1 :(得分:0)

如果您在* nix下运行,请尝试将session.save_path设置为/ tmp。如果这不起作用,请查看浏览器的cookie缓存,看看该浏览器是否确实存储了该cookie。

答案 2 :(得分:0)

尝试将会话cookie存储在数据库中而不是服务器中。这节省了大量的时间和其他会话cookie问题,特别是如果您在共享服务器上。这可能有助于http://www.raditha.com/php/session.php祝你好运

答案 3 :(得分:0)

一种罕见的边缘情况,但我发现 php.ini 的会话名称中有一个点导致了这个问题!!

session.name = THIS.DOESNTWORK
相关问题