是否可以手动为session_id()分配新值?
我尝试了以下但是它不起作用:
session_start();
$sessionId = session_id();
echo $sessionId;
if ($sessionId != $ses) {
session_id() = $ses;
}
答案 0 :(得分:2)
您可以使用session_id()
:
session_id($sessionId);
session_id()
可用于获取会话ID或通过传递可选函数参数来设置它,如上所述。
值得注意的是手册中有关函数调用顺序和会话ID字符限制的内容:
如果指定了id,它将替换当前的会话ID。 需要在session_start()之前调用session_id() 目的。根据会话处理程序,并非所有字符都是 在会话ID中允许。例如,文件会话处理程序 只允许a-z A-Z 0-9范围内的字符,(逗号)和 - (负)!
答案 1 :(得分:2)
您必须在开始会话之前分配ID。
session_id('hello');
start_session();
但是,小心这样做。会话ID(通常)是长的随机字母数字字符串。如果你把它设置为常数/简单的东西,你就会让某人劫持用户的会话变得容易得多。
如果两个或更多人获得相同的会话ID,他们将共享同一个会话,因为此ID是特定会话的唯一标识符。它应该对每个用户都是唯一的,没有重复。
答案 2 :(得分:1)
是的,根据手册,您只需提供一个字符串作为session_id([string $id])