首页 > 解决方案 > 在开始新生成的会话之前禁用 [session.use_strict_mode]

问题描述

我在 PHP MANUAL 上看到了这段代码,但我无法理解 =>

为什么他session.use_strict_mode在开始新生成的会话之前禁用然后再次启用它?

$new_session_id = session_create_id();
$_SESSION['new_session_id'] = $new_session_id;

session_commit();

session_id($new_session_id);
ini_set('session.use_strict_mode', 0);
session_start();
ini_set('session.use_strict_mode', 1);

unset($_SESSION['destroyed']);
unset($_SESSION['new_session_id']);

标签: phpsessioninitialization

解决方案


当启用严格模式时,未初始化的会话 ID 将被丢弃。因此,使用过继会话性质的应用程序可能无法工作。如果设置了阻止新会话 ID 的恶意 cookie,会话模块将不断尝试生成新的会话 ID,会话将无法使用。


推荐阅读