php - session 过期后用帖子重定向

标签 php forms http post redirect

我有这样一种处理过期 session 的机制:

User logged in
Session expires
User goes to link
User redirected to login page
User logs in
User redirected to requested link

我想实现的是具有与表单相同的功能,例如:

User logged in
User starts to fill out a form
Session expires
User submits a form
User redirected to login page
User logs in
Form posted on behalf of user (aka redirect with post)

但是现在它是这样工作的:

User logged in
User starts to fill out a form
Session expires
User submits a form
User redirected to login page
User logs in
User redirected to form page with all fields empty
User sad

我曾尝试使用 http_redirect 来访问它,但事实证明它只是向 URL 添加了参数。问题是,服务器端不接受 GET,只接受 POST。我一直在尝试考虑其他方法来做到这一点,例如自动保存功能、javascript 发布和重定向等。

以前肯定有人遇到过这个问题。

有什么想法吗?

最佳答案

我认为有几种方法

1) 将 session.gc_maxlifetime 值增加到更高(1 天或更长时间)。如果使用自己的 session ,同样的逻辑。

2) 使 session 永不过期,除非用户注销

3) 当用户提交 POST 和 session 过期时,将表单数据存储到 session 本身,并在重定向后从 session 中获取数据。或者重定向后使用get方法

4) 使用 ajax (ping) 持续检查 session 。例如每 60 秒。除非浏览器不关闭, session 永远不会过期(对我来说这是最好的解决方案)

5) 使用ajax进行提交,如果session过期弹出对话框重新登录

当然还有其他选择

关于php - session 过期后用帖子重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10005960/

相关文章:

javascript - html表单方法不调用脚本

jquery - 除了样式化的文件输入按钮外,如何显示要上传的文件名?

PHP:在 MySQL Workbench 6.3 中使用 HTML 表单写入数据库

javascript - jQuery 多次触发提交表单事件(我认为)

html - Firefox 不显示内联 pdf

angularjs - 使用 Apache 捕获 302 并返回 401

php - 我需要在 PHP 中激活什么?接受 [

php - 如何在javascript中获取图像的大小?

php - jquery 不是运算符 : not able to hide div

javascript - 出现 502 Bad Gateway 错误时自动刷新页面