我在我的网站上使用 php Sessions,它们似乎在随机间隔“消失”。我不知道它们是否由于不活动而超时,或者我的代码是否有问题,但是有没有什么方法可以控制 session 何时过期?
比如我可以在我的代码中添加一些东西或更改 php.ini 文件中的一些东西吗?
更新- 所以只是在这里更新,我切换了主机, session 神奇地开始工作了。我不知道出了什么问题,但显然他们不想正常工作。
最佳答案
随机过期是多个应用程序共享 session 数据目录的典型症状:session.gc_maxlifetime
时间最短的那个可能会从其他应用程序中删除数据。原因:
- PHP默认将 session 文件存储在系统临时目录中。
内置文件处理程序不跟踪谁拥有什么 session 文件(它只是将文件名与 session ID 匹配):
我的建议是为您的应用程序配置一个私有(private)的自定义 session 目录。这可以通过 session_save_path()
function 来完成或设置 session.save_path
configuration directive .请查看您的框架文档,了解有关如何在您自己的代码库中执行此操作的准确详细信息。
关于PHP session 超时太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476538/