2014-09-24 107 views
0

我在SESSION上遇到问题。我需要12小时的会话,所以我必须在早上登录,并且可以整天访问我的网站。会话不超过一小时有效

我没有在.htaccess

php_value session.cookie_lifetime 43200 
php_value session.gc_maxlifetime 43200 
php_value session.cache_expire 43200 

以下在我的index.php我已经插入下面的代码:

echo ini_get("session.cookie_lifetime").'<br />'; 
echo ini_get("session.gc_maxlifetime").'<br />'; 
echo ini_get("session.cache_expire").'<br />'; 

我得到的resuilt:

43200 
43200 
43200 

然而如果我在一小时内没有在我的网站上做任何事情,那么会话将会失效。

任何能帮助我的人?

+0

您是否使用过chrome工具检查cookie的过期时间? – used2could 2014-09-24 11:18:40

+0

当使用Debian时,Google for“debian php gc session” - Debian PHP会话清理工作有点不同,通过使用cronjob。就我个人而言,我鼓励大家切换到memcached会话处理程序。 – DanFromGermany 2014-09-24 12:21:10

+0

我知道这不是你问的问题,但是,将登录详细信息存储在cookie中并使用cookie中的详细信息“自动登录”会更好。即通过“自动登录”cookie详细信息设置会话登录详细信息。详情在这里:[3128985/php-loginsystem-remember-me](http://stackoverflow.com/questions/3128985/php-loginsystem-remember-me)。一些托管网站禁止长时间的会话。 – 2014-09-24 12:31:15

回答

0

这应该做的伎俩:

ini_set('session.cookie_lifetime',12*60*60); 
ini_set('session.gc_maxlifetime',12*60*60); 
ini_set('session.cache_expire',12*60*60); 
session_start(); 

记得设置环境参数之前启动任何会话。 也要小心,永远不要超过65535,超过18小时!

+0

如果以下内容返回43200,我也应该在PHP中执行:ini_get(“session.cookie_lifetime”);?在我看来,如果我再次使用PHP再做一次,就不会改变任何东西。如我错了请纠正我。 – AndVla 2014-09-24 16:18:49

+0

您可以确定您的脚本将使用正确的设置。 – 2014-09-24 16:28:06