- 25
- 0
- 约3.9千字
- 约 13页
- 2017-02-23 发布于四川
- 举报
页面按F刷新避免单表重复提交的解决方法
页面按F5刷新,避免表单重复提交的解决方法避免表单重复提交用户提交表单时可能因为网速的原因,或者网页被恶意刷新,致使同一条记录重复插入到数据库中,这是一个比较棘手的问题。我们可以从客户端和服务器端一起着手,设法避免同一表单的重复提交。1.使用客户端脚本提到客户端脚本,经常使用的是JavaScript进行常规输入验证。在下面的例子中,我们使用它处理表单的重复提交问题,请看下面的代码:form method=post name=register action=test.php enctype=multipart/form-datainput 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当用户单击“提交”按钮后,该按钮将变为灰色不可用状态,上面的例子中使用OnClick事件检测用户的提交状态,如果单击了“提交”按钮,该按钮立即置为失效状态,用户不能单击按钮再次提交。还有一个方法,也是利用JavaScript的功能,但是使用的是OnSubmit()方法,如果已经提交过一次表单,将立即弹出对话框,代码如下:script language=javascript!--var submitcount=0;function submitOnce (form){if (submitcount == 0){submitcount++;return true;} else{alert(正在操作,请不要重复提交,谢谢!);return false;}}//--/scriptform 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记录表单提交的状态,根据其状态可以检查是否已经提交表单,请见下面的代码:?phpif(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变量记录表单提交的值,如果不匹配,则认为是用户在重复提交,请见如下代码:?phpsession_start();//根据当前SESSION生成随机数$code = mt_rand(0,1000000);$_SESSION[code] = $code;?在页面表单上将随机数作为隐藏值进行传递,代码如下:input type=hidden name=originator value=?=$code?在接收页面的PHP代码如下:?phpsession_start();if(isset($_POST[originator])) {if($_POST[originator] == $_SESSION[code]){// 处理该表单的语句,省略}else{echo ‘请不要刷新本页面或重复提交表单!’;}}?关于Session的内容,我们会在第10章“PHP会话管理”详细讨论,你可以直接查阅这一章,然后再返回本节继续阅读。4.使用header函数转向除了上面的方法之外,还有一个更简单的方法,那就是当用户提交表单,服务器端处理后立即转向其他的页面,代码如下所示。if (isset($_POST[action]) $_POST[action] == submitted) {//处理数
您可能关注的文档
- 敦煌网分享礼赠品行业外贸市场及礼赠品行业外贸知识.docx
- 2019-2020年北师大版二年级语文下册第一单元测试题.doc
- 敦煌网分享跨境电商新卖家如何开店及注意事项.docx
- 2019-2020年北师大版五下数学第七单元测试题小学五年级北师大版-1.doc
- 2019-2020年北师大版五下数学第二单元练习题北师大版.doc
- 2019-2020年北师大版五年级《品德与社会》上册全册教案.doc
- 2019-2020年北师大版五年级《心理与健康》全册教案.doc
- 2019-2020年北师大版五年级上册《品德与社会》教学计划.doc
- 2019-2020年北师大版五年级上册《品德与社会》第三单元教案.doc
- 2019-2020年北师大版五年级上册语文全册教案.doc
- 精选全文XXX公司涉密项目保密管理办法.pdf
- 一体化IP呼叫中心平台系统及其软硬件配置.doc
- (47页PPT)《系统化思维训练》郭音.ppt
- (29页PPT)课时17777《5琥珀》第二课时琥珀戴桂英.pptx
- (29页PPT)课时17783《8千年梦圆在今朝》千年梦圆在今朝.pptx
- (29页PPT)课时37第七单元《威尼斯的小艇》课件.pptx
- (29页PPT)课时17779《6飞向蓝天的恐龙》第一课时《飞向蓝天的恐龙》第1课时伍莉.pptx
- (29页PPT)课时17750《语文园地七》第二课时语文园地七第二课时.pptx
- (29页PPT)课时在牛肚子里旅行课件.pptx
- (29页PPT)课时《语文园地四》第一课时25《语文园地四》第一课时·课件.pptx
最近下载
- 食材配送车辆故障全流程应急方案.pdf VIP
- 建筑室内施工图深化设计梁佳慧建筑工程系94课件讲解.pptx VIP
- 标准图集目录(第六版).pdf VIP
- 人教版(2024新版)八年级下册物理全册教案 .pdf VIP
- 2026年春季教科版小学科学一年级下册教学计划含进度表.docx VIP
- PEO基复合固态电解质:制备工艺、性能表征与应用前景的深度剖析.docx VIP
- DLT5170-2015 变电站岩土工程勘测技术规程.docx VIP
- 2025-2024-2023(上半年)中学教师资格证《教育知识与能力》真题及答案解析.docx VIP
- 建筑室内施工图深化设计梁佳慧建筑工程系00课件讲解.pptx VIP
- 学校供电线路改造方案.docx VIP
原创力文档

文档评论(0)