php中如何防止刷新一次提交一次

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中如何防止刷新一次提交一次相关的知识,希望对你有一定的参考价值。

我用action fom 从a.php提交到b.php的

1.session记录
submit.php为发送页面,在这个页面上设置一个session变量,,并作为隐藏域和表单一起发送到,submitdeal.php页面..在服务器端把post上来的隐藏变量和服务器端记录的session变量进行对比,,比如一样,则写入数据库并清除session,这样用户刷新页面,两个值不相等提示错误或跳转
优点:不用用户输入验证码,
缺点:表单容易被复制
2.验证码
原理和第一种一样,,只是session数据不作为隐藏域提交,,而是让用户填写,大多数网站都彩用,,有文字验证码和图片验证码,,图片验证码安全性高..别
3.IP绑定
提交数据后,先从IP表里检索客户端IP,如果有,并且没有过期,那么报错,否则写入数据库,然后再取客房端IP,把IP写入数据库,,
4.cookie
客户提交后处理程序先检索客户端有没有设置cookie,如果有,则不重复提交,如果没有,则写数据,,再写个cookie;

说得不是很明白,希望你能看明白一点点...图片验证码最常用
参考技术A 你最好提交数据以后,你的程序做相应的跳转,这样在刷新的时候就不带POST了,这样可以放置刷新的.

表单自动仅提交一次并重新加载相同的页面

我在php中创建了一个表单,它必须从table1获取数据并在每次用户点击链接时将其转储到table2(链接在不同页面中提供)。我已经在php页面中编写代码(假设例如 - > test.php),包括html。我尝试使用javascript(onload)提交页面的document.formname.submit形式,但它继续进行无限循环并继续一次又一次地插入table2中的数据。

我如何防止这种情况和自动表单只提交一次仍然保持在同一个php(即.test.php)页面上,该页面还包含用于在table2中显示插入数据的详细视图的代码?

答案

这是因为在表单填写上简单地调用submit()会导致整页重新加载。如果要保留当前方法,则应使用AJAX调用从该表单提交数据。

Read here了解更多详情。本文解释了如何使用JS执行GET和POST请求。

那很难过,你的解决方案似乎有点......嗯......毛茸茸的。为什么要从另一个表中复制数据呢?

另一答案

在JavaScript使用表单名称检查此条件之前。

 if ( ! isset($_POST['main']) )

这里主要是表单名称。

以上是关于php中如何防止刷新一次提交一次的主要内容,如果未能解决你的问题,请参考以下文章

php如何避免刷新页面重复提交

ASP.NET 如何防止页面的刷新

php通过记录IP来防止表单重复提交方法分析

php防止用户重复提交表单

form提交后刷新又提交一次,怎么解决,重复提交,求高人解答

PHP避免刷新页面重复提交