文档说明
session_create_id()
用于为当前会话创建新的会话ID。
session_regenerate_id()
使用新生成的ID更新当前会话ID。
这两个函数之间有什么区别吗?
session_create_id()
会创建一个新的sessionId且会丢弃当前的$_SESSION
信息,而session_regenerate_id()
则不会销毁它们,而是只更新sessionId。创建新的会话ID
使用新生成的ID更新当前会话ID
手册中的使用示例:
$old_sessionid = session_id();
// Set destroyed timestamp
$_SESSION['destroyed'] = time(); // Since PHP 7.0.0 and up, session_regenerate_id() saves old session data
// Simply calling session_regenerate_id() may result in lost session, etc.
// See next example.
session_regenerate_id();
// New session does not need destroyed timestamp
unset($_SESSION['destroyed']);
$new_sessionid = session_id();
echo "Old Session: $old_sessionid<br />";
echo "New Session: $new_sessionid<br />";
print_r($_SESSION);
create
和update
来创建和更新会话,但是session_regenerate_id()
函数将会用一个新的会话ID替换当前的会话ID,并且保留当前的会话信息。 - Shadow Fiend