即使会话过期被隐式设置,PHP会话也会自动每1小时过期一次

时间:2014-04-13 07:38:17

标签: php session cakephp

我正在设置会话在登录后4小时有效。但是会话正好在四舍五入的时间到期(下午12点,凌晨1点,凌晨2点等等......)

例如:如果在下午12点或12点30分登录,会话将在下午1点到期。

这是我的代码。

// server should keep session data for AT LEAST 4 hour
ini_set('session.gc_maxlifetime', 14400);
session_start();
$_SESSION['login'] = 1;
$login_session_id=session_id();

2 个答案:

答案 0 :(得分:0)

您是否在共享服务器上?

如果是这样,您需要将会话目录设置为默认值/ tmp /.

以外的其他目录

如果服务器上的任何其他应用程序的会话时间少于一小时,那么无论您的应用程序是什么,都会在一小时内使您的会话数据失效。会话时间设置为。

我花了很多时间去弄清楚,但是一旦你理解了PHP的会话垃圾收集是如何工作的,那就很有意义了。

如果您实际上正在使用CakePHP,那么您可以将会话处理程序设置为使用' cake'而不是' php'这将在app / tmp / session而不是/ tmp。

中存储会话

答案 1 :(得分:-1)

<?php
echo " Nfo5o " ;
set_cookie (expire, 84600);
?>