2011-09-02 137 views
0

我目前遇到PHP函数session_id的问题。即使设置了会话cookie,session_id()始终返回''

在我的脚本开始时,我想检查用户是否有会话,并且我不想调用session_start(),因为它会生成会话cookie。

每当我呼叫session_id时,即使定义了一个会话,它也会返回'''。 我通过$ _COOKIE数组检查会话cookie来验证会话是否已设置。

回答

0

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

3

session_start()将不会生成新的会话。从the PHP docs

在session_start()创建一个会话或恢复上经由GET或POST请求,或通过cookie传递 传递会话标识符基于 电流之一。

您必须先恢复旧会话,然后才能获取其ID。

0

如果你想检查他们是否有一个会话,并获得会话ID而不创建一个新的会话,如果他们不是最好的赌注是看$ _COOKIE数组中的会话ID(或$ _GET,如果你使用它来存储ID)。

仅当您调用session_start()时,session_id()才会起作用。如果该会话已经存在,它将不会生成新的会话ID,因此它仍然会为您提供您正在查找的会话ID。

+0

谢谢你,我以为我可以使用该功能没有session_start因为session_start从未在我的文档中的代码示例中提到。 – jgpt

相关问题