dia*_*ian 20 php session session-timeout
我的应用程序有问题:我的应用程序有很多表单,需要大约1小时才能完成此表单,因为表单是动态的(可以添加其他表单).问题是:我的Web服务器的会话是24分钟.当用户填写表单时,他们花了很多时间并且会话超时,因为服务器识别出用户处于非活动状态.当表单提交,大多数数据丢失并且用户返回登录页面时,这非常烦人.我尝试使用此代码在10小时内使会话过期:
ini_set('session.gc_maxlifetime', '36000');
Run Code Online (Sandbox Code Playgroud)
但它不能在我的服务器上工作,我的服务器可能会阻止ini_set()功能吗?
那么,我该怎么做才能解决这个问题呢?我可以阻止会话超时,以便会话可以扩展到10小时吗?或者我可以禁用会话到期吗?
谢谢
小智 44
不要将ini中的时间设置为固定长度,而是提醒重新加载时重置会话超时.因此,创建一些ajax代码,每5分钟左右对文件(图像或smth)执行一次请求.这样,计时器每5分钟重置一次,用户可以花一天时间填写表单.
MDe*_*ein 32
这是一个通过使用jQuery Ajax调用来防止会话超时的示例:
var refreshTime = 600000; // every 10 minutes in milliseconds
window.setInterval( function() {
$.ajax({
cache: false,
type: "GET",
url: "refreshSession.php",
success: function(data) {
}
});
}, refreshTime );
Run Code Online (Sandbox Code Playgroud)
在refreshSession.php中你可以做类似session_start()的事情
我过去也遇到过同样的问题.我做的是将这两个函数放在一个配置文件中,该文件包含在每个文件中.
session_set_cookie_params(86400);
ini_set('session.gc_maxlifetime', 86400);
Run Code Online (Sandbox Code Playgroud)
并且只是为了安全衡量我的.htaccess文件中的这一行
php_value session.gc_maxlifetime 86400
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35334 次 |
| 最近记录: |