2

我有以下源代码

session1.php

<?php

session_start();
echo session_id();

?>

session2.php

<?php

session_start();
echo session_id();

?>

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

为什么这样做?

4

4 回答 4

3

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

  1. 浏览器配置为不向服务器发送 cookie。您不能强制浏览器发送 cookie。在这种情况下,您唯一的选择是在 URL 中传递会话标识符,尽管这通常不是一个好主意。
  2. 服务器被配置为不使用 cookie 作为会话标识符(通过session.use_cookies配置选项)。
于 2011-04-27T00:43:10.340 回答
0

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

于 2011-04-27T07:54:07.863 回答
0

尝试将会话 cookie 存储在数据库中而不是服务器上。这为我节省了大量的超时和其他会话 cookie 问题,特别是如果您在共享服务器上。

这可能会有所帮助:http ://www.raditha.com/php/session.php 。

祝你好运

于 2012-02-04T02:20:59.427 回答
0

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

session.name = THIS.DOESNTWORK
于 2021-03-24T09:25:45.473 回答