当前位置:Gxlcms > PHP教程 > php如何防止form重复提交

php如何防止form重复提交

时间:2021-07-01 10:21:17 帮助过:23人阅读

php如何防止form重复提交

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

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

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

Session

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

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

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

以上就是php如何防止form重复提交的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行