PHP MySQL的会话超时问题

时间:2017-12-12 20:24:01

标签: php mysql session

我有一个网站,用户有时需要一个多小时来填写表单并提交给mysql。我已将session.gc_maxlifetime调整为7200(2小时),并且已验证的Cookie超时为0。在默认的24分钟后,网站仍会将其发送回登录页面而不保存其数据。我已经将index_start()添加到索引,并将head.php添加到所有其他页面以查看via include。任何帮助都是极好的。 托管于godaddy,所以我无法修改php.ini,他们让我修改.user.ini。当我回复它正确显示的信息时。

SESSION START-<?php echo $_SESSION['time']; ?> Displays time user logged in.
SESSION TIMOUT-<?php echo ini_get('session.gc_maxlifetime'); ?> Displays 7200 
SESSION COOKIE-<?php echo ini_get('session.cookie_lifetime'); ?> Displays 0

<?php
function error_found(){
header("Location: inc/records.php");
}
$lifetime=0;
session_set_cookie_params($lifetime);
ini_set('session.gc_maxlifetime', 7200);
session_start();

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-control: no-cache");
header("Pragma: no-cache");

ob_start();

注意:刷新页面,提交表单或任何其他导航时,session_start()不会更新。这可能是问题吗?

1 个答案:

答案 0 :(得分:0)

在Marek的帮助下,这是我的解决方案。 为保存路径创建新文件夹。验证权限未设置为只读。  将每个文件夹中的phpini.ini或.user.ini设置为:

session.gc_maxlifetime = 7200 \\ Seconds you want. I set to 2 hrs.
session.gc_divisor = 1 
session.save_path = /home/folder/public_html/site.com/Your_new_folder