网站大量收购独家精品文档,联系QQ:2885784924

php防止form重复提交的方法.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
php防止form重复提交的方法.doc

用户提交表单时可能因为网速的原因,或者网页被恶意刷新,致使同一条记录重复插入到数据库中,这是一个比较棘手的问题。我们可以从客户端和服务器端一起着手,设法避免同一表单的重复提交。 1.使用客户端脚本 提到客户端脚本,经常使用的是JavaScript进行常规输入验证。在下面的例子中,我们使用它处理表单的重复提交问题,请看下面的代码: form method=post name=register action=test.php enctype=multipart/form-data input name=text type=text id=text / input name=cont value=提交 type=button onClick=document.register.cont.value=正在提交,请等待...;document.register.cont.disabled=true;document.the_form.submit(); /form 当用户单击“提交”按钮后,该按钮将变为灰色不可用状态,如图5-6所示。 上面的例子中使用OnClick事件检测用户的提交状态,如果单击了“提交”按钮,该按钮立即置为失效状态,用户不能单击按钮再次提交。 还有一个方法,也是利用JavaScript的功能,但是使用的是OnSubmit()方法,如果已经提交过一次表单,将立即弹出对话框,代码如下: script language=javascript !-- var submitcount=0; function submitOnce (form){ if (submitcount == 0){ ???? submitcount++; ???? return true; } else{ ??? alert(正在操作,请不要重复提交,谢谢!); ??? return false; } } //-- /script form name=the_form method=post action= onSubmit=return submitOnce(this) input name=text type=text id=text / input name=cont value=提交 type=submit /form 在上例中,如果用户已经单击“提交”按钮,该脚本会自动记录当前的状态,并将submitcount变量自加1,当用户试图再次提交时,脚本判断submitcount变量值非零,提示用户已经提交,从而避免重复提交表单。 2.使用Cookie处理 使用Cookie记录表单提交的状态,根据其状态可以检查是否已经提交表单,请见下面的代码: ?php if(isset($_POST[go])){ ??? setcookie(tempcookie,,time()+30); ??? header(Location:.$_SERVER[PHP_SELF]); ??? exit(); } if(isset($_COOKIE[tempcookie])){ ??? setcookie(tempcookie,,0); ??? echo 您已经提交过表单; } ? 如果客户端禁止了Cookie,该方法将不起任何作用,这点请注意。关于Cookie的详细介绍,请参阅第10章“PHP会话管理”。 3.使用Session处理 利用PHP的Session功能,也能避免重复提交表单。Session保存在服务器端,在PHP运行过程中可以改变Session变量,下次访问这个变量时,得到的是新赋的值,所以,可以用一个Session变量记录表单提交的值,如果不匹配,则认为是用户在重复提交,请见如下代码: ?php ??? session_start(); ??? //根据当前SESSION生成随机数 ??? $code = mt_rand(0,1000000); ??? $_SESSION[code] = $code; ? 在页面表单上将随机数作为隐藏值进行传递,代码如下: input type=hidden name=originator value=?=$code? 在接收页面的PHP代码如下: ?php session_start(); if(isset($_POST[originator])) { ??? if($_POST[originator] == $_SESSION[code]){ ??????? // 处理该表单的语句,省略 ??? }else{ ??????? echo ‘请不要刷新本页面或重复提交表单!’; ??? } } ? 关于Session的内容,我们会在第10章“PHP会话管理”详细讨论,你可以直接查阅这一章,然后再返回本节继续阅读。 4.使用hea

文档评论(0)

docinppt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档