【发布时间】:2016-09-26 15:20:00
【问题描述】:
我有一张桌子。当用户单击该表中的项目时,它会获取表行的 id 并设置会话变量,然后加载表单。 session 变量很重要,因为它是我需要添加到的文件的 id。
当他们填写完表单数据后,它会通过 jquery 发布到 php 文件中,然后我使用 session 变量将表单数据添加到数据库中的特定条目中。
问题是这样的。当表单出现时,id 位于会话变量中,因此如果他们在填写表单之前突然出现喝杯茶,会话变量可能会过期。
所以当提交按钮被按下时它不能添加正确的 id 因为它已经过期了。
我曾想过在表单上使用隐藏的 id,但我认为这不是很安全。我还想如果我使用隐藏字段,数据可能会在发送前被篡改。
如果过期会话变量不存在,有没有办法刷新它?
【问题讨论】:
-
不,不是。为什么不只是延长超时期限?如果获取 cuppa 的时间超过 15 分钟,那么用户应该承受不做他们工作的痛苦。
-
@JayBlanchard:cookie 如何比隐藏的表单字段更安全?
-
@MarcB 不是更安全,我想我应该解释得更好。
-
扩展@MarcB 所说的内容......当人们离开办公桌时保持变量不变也不安全。您担心表单变量与 cookie 的安全性......同时其他人可以坐在空桌子旁,不顾一切地做事。
-
正如@MarcB 所说,您可以延长 cookie 的生命周期,或者另一方面,您也可以将其设置为“0”,这意味着 cookie 将“永远”存在,但仅存在于当前浏览器中执行。即:当用户最终关闭浏览器时,cookie 被强制过期(与生命周期设置为非零值不同)。