当前位置:首页 » 编程语言 » php防止刷新重复提交

php防止刷新重复提交

发布时间: 2022-06-20 03:46:09

php 如何防止表单重复提交呢

在php中如何防止表单的重复提交


<?php
/*
*php中如何防止表单的重复提交
*/
session_start();
if(empty($_SESSION['ip'])){//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库
$_SESSION['ip']=$_SERVER['REMOTE_ADDR'];//第一次写入,为后面刷新或后退的判断做个铺垫
//...........//写入数据库操作
}else{//已经有第一次写入后的操作,也就不再写入数据库
echo'请不要再次刷新和后退';//写一些已经写入的提示或其它东西
}
?>

还有办法就是:
1、在页面生成随机码,也就是每次提交随机码都不一样,在提交的时候验证随机码!
2、在提交的时候,验证如果数据存在,就不提交了

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

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

③ PHP如何避免表单的重复提交

你是否遇到过“重复提交”的问题?要解决这个问题其实并不难。这里有一个简单的方法避免同一表单的重复提交。 首先,我们可以定义一个session变量用来保存一个表单的提交序列号。这里我定义为“$userLastAction”。然后在表单里加入一个hidden变量,把值设为$userLastAction 1: 最后,在处理提交之前判断表单是否已被提交过: if($lastAction$userLastAction and inputIsValid(...)){ $userLastAction ; // 序列号加1 // 处理表单数据}原文:Avoid multiple form submissions Submitted By: Douglas E. Cook Date: 07/26/00 19:46 Does your database suffer from "plicate post" syndrome? The cure isnt too difficult. Here is a simple way to prevent users from submitting the same form multiple times. First, declare a session variable to store a serial number for each form. I call mine "$userLastAction." Then, in every form where plicate submission is a problem, include a hidden field, and set the value to $userLastAction 1: Finally, verify that the form has not been previously submitted before acting on the submission: if($lastAction$userLastAction and inputIsValid(...)){ $userLastAction ; // Increment serial number // Act on form here}译自:phpbuilder 这只是一个小技巧,用来避免一个表单的重复提交。这样多少可以防止一些灌水的现象,另外有时候由于网络状况等原因用户不知道提交是否成功,也会再次提交同一份表单。 这个技巧的主要原理是不允许用户回退后再次提交,也就是说回退后修改再提交也是不允许的,而且也不能避免Ctrl-C/Ctrl-V的灌水办法。究竟有没有用,还是看各位站长的喜好了

④ 提交表单的时候大家有什么防止用户刷新重复提交的方法 - PHP进阶讨论

有个BBS系统是缓存了提交的内容,然后2次提交如果内容相同就会出现错误,这样也防止了刷新提交..gulser
发表于
2009-10-10
19:44[i][/url][/b]那也是cookie缓存,
用文本缓存,
要区分不同的用户,有点难。

⑤ PHP中如何实现防刷新机制

最常见的防刷新肯定是在处理表单的时候,防止重复提交。我们有很多种方式来处理:1、提交表单之后,进行跳转,这是很常用的方式。如果你的表单是从index.php提交到post.php页面处理的,那么提交完之后可以跳转再回到index.php页面,这样再刷新就不会重复提交了。如果你是提交给当前页面处理,可以在提交之后再重新跳转到当前页面。2、使用验证码,也很常用。在提交表单数据之前先判断验证码,由于每提交一次,验证码就会变,所以这样是可以避免重复提交的。3、使用Ajax方式,毫无疑问可以避免刷新重复提交。以上讨论的是针对表单提交的防刷新,那么其他的防刷新呢?比如,我要统计一篇文章的点击数,我希望当用户刷新页面的时候,不进行统计,该怎么办呢?在此,站长只提供一种不完美的解决方案:即在当前的会话中,不统计重复载入。请看下面的代码:<?php session_start();if(!$_SESSION['sid']){ $_SESSION['sid']=session_id(); echo ‘您在此次会话中第一次浏览该页面,进行统计’;}else{echo ‘您已经在此次会话中浏览过该页面,不统计’; }?>当用户在第一次会话中访问页面时,进行统计,并把当前的会话id存在session,如果用户刷新或者从浏览器重新载入,由于在当前会话中已经访问过了,所以不会再次统计。但是,如果当用户关闭浏览器后再浏览,是会统计的。在此,站长也就文章统计是否有必要做得这么精确,说一些个人看法吧。用户浏览你网站的文章有这么几种方式:1、通过点击站内链接2、直接输入网址3、通过第三方的链接或者跳转这三种都构成正常的访问,是应该统计的。刷新,严格来说确实不应该算进统计中去,而且在多进程的浏览器中,用户打开新窗口重复输入网址也跟刷新差不多,而文章的真实访问量和重复刷新量之间的差距肯定是非常大的,所以即便是将刷新的次数算进统计中去,也不会产生太大的影响。上面的代码,实现了不完美的防刷新,但是却多出了额外的判断,而且使用session也是要消耗资源的。

⑥ 有没有简单的方法防止网页刷新等导致数据重复提交到数据库,求详细代码,谢谢!!!

防止网页刷新导致数据重复提交,可以在表单中添加Token令牌机制,这即保证了安全性(防CSRF攻击),又能够验证重复提交,每次生成表单页面时,会生成一个Token,在每次提交数据时,都要求检查Token,通过token检验合法的请求,可以多去看看实战教程。

热点内容
开源库编译管理员 发布:2025-02-06 09:39:14 浏览:914
脸书怎么注册安卓 发布:2025-02-06 09:36:47 浏览:381
车用安卓导航无线打不开什么原因 发布:2025-02-06 09:27:50 浏览:790
安卓与苹果如何互相传送文件 发布:2025-02-06 09:27:40 浏览:26
华为服务器盘符如何分配 发布:2025-02-06 09:26:41 浏览:560
传奇h5源码下载 发布:2025-02-06 09:26:06 浏览:78
编译uclibc 发布:2025-02-06 09:09:04 浏览:152
用gcc编译16位汇编 发布:2025-02-06 09:06:07 浏览:823
什么低端安卓手机不卡 发布:2025-02-06 09:03:32 浏览:14
我的世界服务器卡领地 发布:2025-02-06 08:50:45 浏览:256