Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php如何防止form重复提交

php如何防止form重复提交

(*-*)浩
(*-*)浩asal
2019-09-27 14:48:312926semak imbas

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;]);

Atas ialah kandungan terperinci php如何防止form重复提交. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:php如何搭建服务器Artikel seterusnya:PHP如何导入css