我有一个网站,用户有时需要一个多小时才能填写表格并提交到 mysql。我已将 session.gc_maxlifetime 调整为 7200(2 小时),并验证 cookie 超时为 0,永远不会。网站仍会在默认的 24 分钟后将他们发送回登录页面,而不保存他们的数据。我已将 session_start() 添加到索引和我的 head.php 中,以便所有其他页面通过包含查看。任何帮助都是极好的。 托管在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() 不会更新。这可能是问题所在吗?
最佳答案
在 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
关于php - PHP MySQL 的 session 超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47780944/