会话的默认生存期是多少?

2022-08-30 08:55:08

如果我点击了一个调用的页面,我需要等待多长时间才能在刷新页面时获得新的会话ID?session_start()


答案 1

看看 php.ini为 session.gc_maxlifetime 设置的值是 ID 生存期(以秒为单位)。

我相信默认值为1440秒(24分钟)

http://www.php.net/manual/en/session.configuration.php

编辑:正如一些评论所指出的,上述内容并不完全准确。此处提供了有关原因以及如何实现会话生存期的精彩解释:

如何在 30 分钟后使 PHP 会话过期?


答案 2

该指令的 php.ini(“gc”表示垃圾回收)的默认值为 1440 秒或 24 分钟。请参阅手册中的会话运行时配置页面:session.gc_maxlifetime

http://www.php.net/manual/en/session.configuration.php

您可以在 php.ini 或 .httpd.conf 文件中更改此常量(如果您有权访问它们),也可以在网站上的本地 .htaccess 文件中更改此常量。要使用 .htaccess 方法将超时设置为一小时,请将此行添加到站点根目录中的 .htaccess 文件中:

php_value session.gc_maxlifetime "3600"

如果您使用的是共享主机,或者您托管了多个尚未更改默认值的网站,请小心。默认会话位置是 /tmp 目录,垃圾回收例程将每 24 分钟对这些其他站点运行一次(并在此过程中清除会话,无论它们保留多长时间)。有关更好的解释,请参阅手册页或此站点上的注释

答案是使用session.save_path将会话移动到另一个目录。这也有助于防止坏人从默认的 /tmp 目录中劫持访问者的会话。


推荐