【发布时间】:2011-08-23 04:33:50
【问题描述】:
我的申请有问题:我的申请有很多表格,需要大约 1 小时才能完成这个表格,因为表格是动态的(可以添加其他表格)。问题是:我的网络服务器的会话是 24 分钟。当用户填写表格时,他们花了很多时间并且会话超时,因为服务器识别出用户处于非活动状态。提交表单时非常烦人,大部分数据丢失,用户返回登录页面。我尝试使用以下代码使我的会话在 10 小时内过期:
ini_set('session.gc_maxlifetime', '36000');
但它在我的服务器上不起作用,我的服务器是否可能阻止ini_set() 功能?
那么,我应该怎么做才能解决这个问题呢?我可以防止会话超时,以便将会话扩展到 10 小时吗?或者我可以禁用会话过期吗?
谢谢
【问题讨论】:
-
您可以基于cookies和数据库或文件实现自己的会话系统。
-
请选择一个答案作为您的主题的答案。
-
@jcubic -> 是的,先生,我已经实现了 cookie。因此,如果会话过期,cookie 仍然保存登录数据,但是当用户提交表单时,页面重定向到起始页面(登录成功时我们首先查看的页面)。重定向路由是
form page (when submit, session expired) -> login page (if cookies true) -> starting page,所以数据丢失了 -
我的意思是,不要使用 $_SESSION (session_start) 使用 cookie 并将变量保存在数据库或文件中。当用户登录时创建一个令牌并将其保存在 cookie 中并基于此令牌存储您的变量。
标签: php session session-timeout