2016-09-26 80 views
0

我有一张桌子。当用户点击该表中的一个项目时,它将采用表格行的id并设置一个会话变量,然后加载一个表单。 会话变量很重要,因为它是我需要添加到的文件的ID。有没有办法刷新已过期的SESSION变量?

当他们填写了表单数据后,它通过jquery发布到php文件中,然后使用会话变量将表单数据添加到数据库中的特定条目中。

问题是这样的。当表单出现时,id在会话变量中,因此如果在填写表单之前弹出一杯茶,会话变量可能会过期。

所以当提交按钮被按下时,它不能添加正确的ID,因为它已经过期。

我曾想过在窗体上使用隐藏ID,但我并不认为这是非常安全的。我还想过如果我使用隐藏字段,数据在发送之前可能会被篡改。

有没有办法刷新过期会话变量,如果它不存在?

+2

不,不是。为什么不延长超时时间?如果获得茶杯需要超过15分钟,那么用户应该承担不做工作的痛苦。 –

+1

@JayBlanchard:cookie如何比隐藏的表单域更安全? –

+0

这不是更安全@MarcB,我猜应该更好地解释。 –

回答

1

在表单上使用隐藏ID是正确的选择。您只需确保在保存前允许用户编辑该表单/标识。你也应该对变量进行正常的卫生检查。

+0

我曾经使用过一个隐藏的ID,但我担心使用这种方法可能会被攻击。我的意思是在这个例子中,id不是秘密,但我不希望他们改变id,这样他们可以添加到他们不应该添加到你看到的东西。 –

+0

@ThomasWilliams我认为我们还没有理解你当前的代码是如何工作的,并假定ID已经在页面HTML中的某处。 –

+0

@ThomasWilliams如果他们被允许编辑别的东西,他们是否将ID改为其他东西并不重要。因此,当您保存表单时,您需要进行检查以确定该人员是否可以查看或保存该表单。无论如何,你应该这样做。 –

相关问题