即使设置了会话cookie,session_id()也始终返回''

时间:2011-09-02 13:39:21

标签: php session

我目前遇到PHP函数session_id的问题。

在我的脚本开头,我想检查用户是否有会话,我不想调用session_start(),因为这会产生会话cookie。

每当我调用session_id时,它都返回'',即使会话已定义设置。 我通过$ _COOKIE数组检查会话cookie验证了会话是否已设置。

3 个答案:

答案 0 :(得分:3)

session_start()不会生成新会话。来自the PHP docs

  

session_start()创建会话或恢复当前会话   在通过GET或POST请求传递或传递的会话标识符上   通过cookie。

您必须先恢复旧会话才能获得其ID。

答案 1 :(得分:0)

如果不调用session_start(),则PHP的会话不存在。在session_start()之后,您可以轻松检查用户是否有一个会话,检查$ _SESSION超全局数组中的键。

答案 2 :(得分:0)

如果你想检查他们是否有会话并获得会话ID而不创建新的会话ID,如果他们不是你最好的选择是查看$ _COOKIE数组中的会话ID(如果你使用$ _GET)而是用于存储id)。

只有在调用session_start()时,

session_id()才有效。如果会话已经存在,它将不会生成新的会话ID,因此它仍然会为您提供您正在寻找的会话ID。