我目前遇到PHP函数session_id的问题。
在我的脚本开头,我想检查用户是否有会话,我不想调用session_start(),因为这会产生会话cookie。
每当我调用session_id时,它都返回'',即使会话已定义设置。 我通过$ _COOKIE数组检查会话cookie验证了会话是否已设置。
答案 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。