会话在工作中过期或警告:session_cache_expire():会话处于活动状态时无法更改会话缓存过期

Either session expires in the middle of work or Warning: session_cache_expire(): Session cache expiration cannot be changed when a session is active

在 Windows 10 本地使用 PHP 8.0.6 我收到此错误消息:

Warning: session_cache_expire(): Session cache expiration cannot be changed when a session is active in C:\path\sessions.php on line 5

我在实时 Linux 服务器 (PHP 8.0.9) 上更新了相同的文件,但问题没有出现。

相关代码:

session_cache_expire($session_length);

我的第一个猜测是这个 可能 是一个 Windows 特定的问题,但是我刚刚看到访问实时服务器的其他人也遇到了这个问题。

此行的初衷是成员在会话中途注销,因为过期日期根据客户端计算机向服务器。我添加了这一行,突然更新了会话 cookie 过期日期,但是这个错误会随机开始发生。如何在不发生这种无意义错误的情况下使会话保持活动状态?

文档 (php.net/manual/en/function.session-cache-expire.php) 指出:

“因此,您需要为每个请求调用 session_cache_expire()并且在调用 session_start() 之前 ”)。

我怀疑这是你的问题,但在没有看到更多你的代码之前不能确定。