首页 >后端开发 >PHP问题 >php如何防止form重复提交

php如何防止form重复提交

(*-*)浩
(*-*)浩原创
2019-09-27 14:48:313044浏览

php如何防止form重复提交

php如何防止form重复提交

引入cookie机制来解决(推荐学习:PHP编程从入门到精通

用户提交表单到后端,在 Cookie 中做标记,指定时间内重复提交无效。但是用户禁用 Cookie 这个方法就失效了。

<?php
  
if (isset($_COOKIE[&#39;formFlag&#39;])) {
  exit(&#39;error&#39;);
}
  
// 处理数据
  
// 30秒内重复提交无效
setcookie(&#39;formFlag&#39;, time(), time() + 30);

Session

展示表单页面的时候,生成随机数,同时存储在 Session 中以及表单隐藏域中。第一次提交的时候,对比成功删除 Session 中的值。

利用PHP的Session功能,也能避免重复提交表单。Session保存在服务器端,在PHP运行过程中可以改变Session变量,下次访问这个变量时,得到的是新赋的值,所以,可以用一个Session变量记录表单提交的值,如果不匹配,则认为是用户在重复提交。

<?php
  
if (!isset($_SESSION[&#39;formFlag&#39;]) || $_POST[&#39;formFlag&#39;] != $_SESSION[&#39;formFlag&#39;]) {
  exit(&#39;error&#39;);
}
  
// 处理数据
  
unset($_SESSION[&#39;formFlag&#39;]);

以上是php如何防止form重复提交的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn