session_create_id和session_regenerate_id()有什么区别?

3

文档说明

session_create_id()用于为当前会话创建新的会话ID。 session_regenerate_id()使用新生成的ID更新当前会话ID。

这两个函数之间有什么区别吗?


你已经可以使用createupdate来创建和更新会话,但是session_regenerate_id()函数将会用一个新的会话ID替换当前的会话ID,并且保留当前的会话信息。 - Shadow Fiend
当前会话的“新ID”,更新为“新ID”后是否看起来相同? - nithinTa
请查看以下链接:https://dev59.com/N2Ag5IYBdhLWcg3w9fDm - Abhilash Nayak
你知道默认情况下 session_regenerate_id() = session_id (session_create_id()),对吧? - nithinTa
2个回答

3

1

session_create_id

创建新的会话ID

session_regenerate_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);

这就引出了一个问题——为什么以及何时应该使用它,在this link中有详细的答案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接