ini PHP会话到期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ini PHP会话到期相关的知识,希望对你有一定的参考价值。
我如何检查会话是否将在PHP中过期[重复]
这个问题在这里已有答案:
我有一个用例,我想检查会话是否会在30秒或60秒内到期。如果是这样我应该能够延长会话时间。我对使用会话或cookie的任何解决方案都很好。我怎么做到这一点。请详细说明您的解决方案。但是我应该在会议结束前知道。
答案
php.ini设置了一个sesion_maxlifetime,但这不可靠,因为会话可能会持续更长时间,具体取决于调用PHP中的垃圾收集器的时间。
我建议将会话元数据存储在一个带有列的数据库中,以指定到期时间(您可以很好地使用datetime
)。一旦用户使用session_start()
调用页面,您可以获取$_COOKIE['my_cookie_name]
值并使用mysqli
之类的库来获取到期时间。您可能还希望将其存储为会话变量以及数据库,因此您不必一直进行数据库调用以使会话到期,例如: $_SESSION['expiry'] = time() + 60*60*24*365
会议将在356天后到期。
然后,您可以使用session_unset()
函数调用session_destroy()
来验证用户请求时清理会话。
实际会话数据也可以存储在数据库中,但您应该考虑使用像Redis这样的键值存储来使这更顺畅:对像会话之类的易失性数据执行大量数据库调用可能不是最佳实践,并且可能会产生不必要的负载您的服务器,尤其是许多用户。
以上是关于ini PHP会话到期的主要内容,如果未能解决你的问题,请参考以下文章