当前位置:  开发笔记 > 编程语言 > 正文

PHP:会话的默认生命周期是多少

如何解决《PHP:会话的默认生命周期是多少》经验,为你挑选了2个好方法。

如果我点击了一个电话的页面session_start().我需要等多久,所以如果我要刷新页面,我会收到一个新的会话ID?



1> Martin..:

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

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

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

编辑:正如一些评论所指出的,上述内容并不完全准确.这里有一个关于为什么以及如何实现会话生存期的精彩解释:

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


@chris你为什么不建议另一个答案?
-1,不是问题的正确答案.常见的误解.
正如Brannon所写,这是完全错误的,不应该是选定的答案.此值告诉垃圾收集器如何表现,而不是关于会话的生存时间.如果你没有添加某种机制,会话会永远存在.关键是自己处理会话生存期(即在一段时间不活动后删除会话数据)并将session.gc_maxlifetime设置为更大或相等的值.kontur在这一点上提出了最佳答案,但是请取消回答这个问题,它会导致安全问题.
错误的答案,这只设置无效会话文件被删除/"垃圾收集"的时间.将此值设置得更高不会延长用户会话.

2> flamingLogos..:

session.gc_maxlifetime指令的php.ini中的默认值("gc"用于垃圾收集)是1440秒或24分钟.请参阅手册中的Session Runtime Configuation页面:

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

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

php_value session.gc_maxlifetime "3600"

如果您在共享主机上,或者如果您托管多个未更改默认设置的站点,请务必小心.默认会话位置是/ tmp目录,垃圾收集例程将每24分钟为这些其他站点运行(并在此过程中清除会话,无论它们保留多长时间).见注手册页面或本网站的一个更好的解释.

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


-1,不是问题的正确答案.常见的误解.gc收集的会话文件不会使php生成新的会话ID,即使会话保存到自己的目录,时间限制也不可靠.
推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有