【发布时间】:2016-10-30 10:13:28
【问题描述】:
好吧,经过几天的挫折,我偶然发现了会话问题,不幸的是,我不确定我找到的解决方案是否会成为安全问题或风险。
我在我的本地主机上处理一个 php 项目,登录应用程序,我可以走开 5,10 甚至 15 分钟,然后回来,我仍然可以继续通过我的应用程序登录。当我上传我的项目进行测试时在线的。如果我登录了,我可以在 2-3 分钟内刷新,然后必须重新登录。
我在这里尝试了大约 50 个帖子中的所有内容,但没有得到任何结果。所以我决定阅读我的本地主机和主机上的每一行 phpinfo 进行比较。一无所获..其实我仔细看了一个细节..
所以今天早上喝咖啡的时候头发很少了。我发现了问题。
session.cache_expire 180
现在无论会话生命周期如何,它都会在 3 分钟后关闭。 也在本地主机上,
session.gc_divisor 1000
session.gc_divisor 在本地主机上是 1000,但在我的网络主机上是 100,
现在我有一个名为 sessions.php 的文件,其中包含我的 session_start。我找到的解决方案就在这里。 http://php.net/manual/en/function.session-cache-expire.php
所以我已将我的会话文件更改为以下内容。
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
session_cache_expire(30);
$cache_expire = session_cache_expire();
session_start();
ob_start();
结果是当我打开浏览器超过 3 分钟时,它不再需要我重新登录。但这是一个正确的解决方案吗?
【问题讨论】: