PHP-表单令牌防止重复提交原理
3 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
最常用的方法就是利用token。即:
1、在生成页面的时候生成一个token(随机字符串),并把它同时写入表单的某个hidden中,和服务端的session中。
2、客户端提交表单到服务器时,比对表单中的token与session中的token是否一致。若不一致则认为是无效的请求。
3、不管第2步的校验是否通过,token只要使用一次后就立即作废(即:从session中销毁)。同时token也可以关联时间信息,超时后也自动作废。
这样,即便客户端重复提交,也只有第一次的请求能够成功。
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
可以在当前页面里设置一个变量,通过这个变量来确定是否已经提交了,如果提交过了就不再提交。
示例代码:
123456789101112131415 | <script language= "javascript" > var checkSubmitFlg = false ; function checkSubmit(){ if (checkSubmitFlg == true ){ return false ; //当表单被提交过一次后checkSubmitFlg将变为true,根据判断将无法进行提交。 } checkSubmitFlg == true ; return true ; } < /script > < form name= "form1" method= "post" onsubmit= "return checkSubmit();" > ……….. < /form> |
- 3 回答
- 0 关注
- 729 浏览
添加回答
举报
0/150
提交
取消