欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php如何防止form重复提交

程序员文章站 2022-03-21 16:50:25
...
php如何防止form重复提交

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重复提交的详细内容,更多请关注其它相关文章!

相关标签: php