【发布时间】:2014-07-31 12:40:15
【问题描述】:
我正在设置一个 PHP 会话,以便在登录后 4 小时内有效。但会话将在整整时间(@1 AM、2 AM、3 AM 等)到期。
例如:如果在上午 12.00 或 12.30 登录,会话将在凌晨 1 点到期。
在共享主机中是否为会话进行了任何默认设置?
我已尝试更改会话保存路径和会话寿命,但没有使用。
这是我在登录页面期间的代码。
// server should keep session data for AT LEAST 4 hour
ini_set(session.save_path, "/home/web/session");
ini_set('session.gc_maxlifetime', 14400);
session_start();
$_SESSION['login'] = 1;
$_SESSION['sessionid']=session_id();
在其他页面中:
if($_SESSION['login'] == 1 $_SESSION['sessionid']==session_id())
{
echo "you are aleady logged in...";
}
else
{ echo "you are not logged in..." ; //this is occurring exactly every hour
}
您能帮我解决这个问题吗?
【问题讨论】:
-
ini_set(session.save_path, "/home/web/session");应该是ini_set("session.save_path", "/home/web/session"); -
对 debian session_save_path 感兴趣需要将垃圾收集器 session.gc_probability 的附加值设置为 1,以便 GC 从自定义会话文件夹中清除旧会话。但在你的情况下,它会被自动删除。可能您需要为此联系托管服务。
-
@AbhikChakraborty :我正在使用我自己的会话文件夹。怎么会自动删除?
-
就像
session_save_path("/home/web/session")那样做