PHP表单控件在会话到期时保留信息

时间:2016-03-24 23:24:43

标签: php session

我迷失在表格控制中,我觉得我让它变得比它需要的复杂得多,希望有人可以帮助我?

我有一个简单的"查看产品"页面上有一个用于创建评论的按钮,按钮链接是动态创建的,例如:

"newreview.php?productid=1"

当我点击此按钮时,我的 newreview 页面会通过$ _GET收到productid。然后,用户输入我回发到同一 newreview 页面的审核详细信息,以进行验证和处理。要保留productid(因为表单现在是POST,我使用隐藏字段)。

所以我现在通过$ _POST回复审核细节和productid,这很好。

但是,用户必须登录才能发布评论,因此在新视图页面的开头,我会检查用户是否已登录,如果没有将当前页面存储在会话中(' REQUEST_URI'存储在最后一页中)并指向登录页面。

如果在登录会话后有 lastpage 元素,我会将用户重定向回上一页。

如果用户在首次提交评论时未登录或会话已过期,则 lastpage 会话字段包含URI参数(作为$ _GET),因此效果正常。

但如果会话在用户撰写评论时到期,我该怎么办?当他们点击提交并且页面被回发时,会话已过期,因此他们被重定向到登录页面,但是当它试图返回所有信息时(包括批判性地,productid已经消失)?

1 个答案:

答案 0 :(得分:0)

也许尝试将$ _POST内容存储在cookie中,然后您可以检查cookie是否存在以及用户是否从登录重定向回来。抓取Cookie内容,然后进行提交。

OR

将发布的数据存储在会话变量中以保存数据的往返。用户登录时处于提交状态,因此也应该易于存储,当用户返回审阅页面时自动触发提交完成。