【问题标题】:How can I change session.gc_maxlifetime at execution time on php 7.2?如何在 php 7.2 的执行时更改 session.gc_maxlifetime?
【发布时间】:2020-09-06 00:30:40
【问题描述】:

如果用户登录,我想更改会话超时,如果没有(用户只是访问),会话应该提前结束。一切正常,直到我从 php 5.6 更新到 7.2,我知道这个较新的版本不再支持这种方法,但是在调用 session_start() 之前不可能测试 $_SESSION 变量,对吗?我的问题是在 php 7.2 中调用 session_start() 之后,我该如何做类似ini_set('session.gc_maxlifetime',900); 的事情?

PS:我这样做是因为我看到一些漫游器访问使 redis 服务器充斥着持续时间较长的会话,因此我希望在简单访问时更快地清理它。

【问题讨论】:

  • 会话 GC 影响所有会话,而不仅仅是当前会话。我的建议是检测机器人而不是首先为它们打开会话。

标签: php session php-7.2


【解决方案1】:

首先,不幸的是,在 php 7.2 中 session_start() 之后无法调用此函数,并且正如 Sammitch 所说,此函数影响所有会话,而不仅仅是调用该函数的当前会话。

由于我的项目托管在 AWS,我通过在负载均衡器中实施 Web ACL 解决了机器人问题,并从我的代码中删除了 session.gc_maxlifetime 的所有引用。

【讨论】:

    猜你喜欢
    • 2018-04-19
    • 2019-11-28
    • 2021-03-05
    • 2020-10-06
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    相关资源
    最近更新 更多