Doc说
session_create_id()
用于为当前会话创建新的会话ID。
session_regenerate_id()
使用新生成的会话ID更新当前会话ID。
这两个功能有什么区别吗?
答案 0 :(得分:2)
是的,有一点不同,session_create_id()
会创建一个新的sessionId,丢弃当前的$_SESSION
信息,而session_regenerate_id()
不会破坏它们,而只会更新sessionId
参考:http://php.net/manual/en/function.session-create-id.php& http://php.net/manual/en/function.session-regenerate-id.php
答案 1 :(得分:1)
创建新会话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);
这引出了以下问题 - 为什么以及何时应该使用它,this link中有详细的答案。