Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official

php中设置session过期时间方法

 Share


KaiWn

Recommended Posts

  • php中设置session过期时间方法 -php手册-PHP中文网  https://www.php.cn/php-notebook-45754.html 在apache与php的环境中默认过期时间是20分钟左右,那么我们要怎么设置session过期呢,下面看具体方法总结。  

    我们最常用的是在php程序中设置

    代码如下 复制代码

    if(!isset($_SESSION['last_access'])||(time()-$_SESSION['last_access'])>60)
    $_SESSION['last_access'] = time();
    ?>

    这样就搞定了,如果要设置过期的话也可以在程序中实例

    代码如下 复制代码

    unset($_SESSION['last_access']) 或 $_SESSION['last_access']='';
    ?>

    session有过期的机制


    session.gc_maxlifetime 原来session 过期是一个小概率的事件,分别使用session.gc_probability和session.gc_divisor 来确定运行session 中gc 的概率 session.gc_probability和session.gc_divisor的默认值分别为 1和100

    分别为分子和分母 所以session中gc的概率运行机会为1% 。如果修改这两个值,则会降低php的效率。所以这种方法是不对的!!

    所以,修改php.ini文件中的gc_maxlifetime变量就可以延长session的过期时间了:(例如,我们把过期时间修改为86400秒)

    代码如下 复制代码

    session.gc_maxlifetime = 86400

    然后,重启你的web服务(一般是apache)就可以了。

    session“回收”何时发生?

    默认情况下,每一次php请求,就会有1/100的概率发生回收,所以可能简单的理解为“每100次php请求就有一次回收发生”。这个概率是通过以下参数控制的

    代码如下 复制代码

    #概率是gc_probability/gc_divisor
    session.gc_probability = 1
    session.gc_divisor = 100


    注意1:假设这种情况gc_maxlifetime=120,如果某个session文件最后修改时间是120秒之前,那么在下一次回收(1/100的概率)发生前,这个session仍然是有效的。

    注意2:如果你的session使用session.save_path中使用别的地方保存session,session回收机制有可能不会自动处理过期session文件。这时需要定时手动(或者crontab)的删除过期的session:cd /path/to/sessions; find -cmin +24 | xargs rm

Link to post
Link to comment
Share on other sites

 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...