意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

PHP中怎么样防止重复提交,方法是什么

来源:恒创科技 编辑:恒创科技编辑部
2024-01-03 11:07:59
这篇文章主要介绍“PHP中怎么样防止重复提交,方法是什么”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP中怎么样防止重复提交,方法是什么”文章能帮助大家解决问题。


   


PHP中怎么样防止重复提交,方法是什么

说来惭愧,前几天做项目的时候,出现个低级错误。在公司后台做表单提交,一是自己员工用,二是 html 自己来写的,没有验证表单重复提交,结果出错了。写出来记录下以便提醒自己,时刻不能疏忽。

解决方法

其实方法有很多种,只举例几个简单的来说说。

框架

很多框架都有防止重复提交的功能,大家应该都有了解,这里不再赘述。

前端

原理很简单,用户点击提交之后,使用 JS 将提交按钮置灰即可。

后端

也就是使用 PHP 进行验证,当然不局限以下几种

Cookie

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

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

Session

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

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

以上就是关于“PHP中怎么样防止重复提交,方法是什么”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注群英网络,小编每天都会为大家更新不同的知识。
上一篇: stripos函数的作用是什么,如何使用 下一篇: stripos函数的作用是什么,如何使用