ini_set 无法设置会话变量 – PHP 7.2.0 及更高版本
ini_set fails to set session variables – PHP 7.2.0 and higher
这是一个 gc_maxlifetime
的示例,但它适用于我尝试过的 session.
个变量中的 none 个
<?php
session_start();
ini_set('session.gc_maxlifetime', 1500);
这曾经有效,直到 PHP 7.2.0,现在抛出此警告:
Warning: ini_set(): A session is active. You cannot change the session
module's ini settings at this time in /in/nOv0L on line 3
我检查了 changelog 但找不到原因。
谁能告诉我发生了什么变化,我该如何解决?
p.s。我知道我可以这样做:
ini_set('session.gc_maxlifetime', 1500);
session_start();
但这不是我问题的重点。
好吧,在开始会话之前进行所有配置更改:
ini_set('session.gc_maxlifetime', 1500);
session_start();
即使没有警告,在会话开始后更改设置也不会产生任何影响。
manual 表示
Garbage collection may occur during session start
因此,如果您在启动会话后更改该值,它将无效。对于大多数其他会话参数也是如此。
您可能遇到的是其他更改的人工制品,例如添加此消息作为警告(我发现的所有其他来源,例如 将其作为 "message"没有关联的级别)。
这是一个 gc_maxlifetime
的示例,但它适用于我尝试过的 session.
个变量中的 none 个
<?php
session_start();
ini_set('session.gc_maxlifetime', 1500);
这曾经有效,直到 PHP 7.2.0,现在抛出此警告:
Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in /in/nOv0L on line 3
我检查了 changelog 但找不到原因。
谁能告诉我发生了什么变化,我该如何解决?
p.s。我知道我可以这样做:
ini_set('session.gc_maxlifetime', 1500);
session_start();
但这不是我问题的重点。
好吧,在开始会话之前进行所有配置更改:
ini_set('session.gc_maxlifetime', 1500);
session_start();
即使没有警告,在会话开始后更改设置也不会产生任何影响。
manual 表示
Garbage collection may occur during session start
因此,如果您在启动会话后更改该值,它将无效。对于大多数其他会话参数也是如此。
您可能遇到的是其他更改的人工制品,例如添加此消息作为警告(我发现的所有其他来源,例如