您好,欢迎访问一九零五行业门户网

防止多个PHP表单提交_PHP教程

当提交一个html表单,它可能需要几秒钟前成功提交,并显示响应页面的形式。人们可以得到空闲,并单击提交按钮几次,这可能会导致重复的表单提交。通常并不真的是一个问题,但在某些情况下,你可能要防止这种情况的发生。
下面你会发现两个简单的技巧,以防止重复提交,您可以使用这些或两者的结合。
»防止多个表单提交使用javascript
使用javascript块重复提交可能是最简单的方法。当有人提交表单我们简单地禁用submit按钮,可能改变它的值为更具描述性的东西,比如“提交,请稍候……”
试着点击这个按钮,例如。它仍将禁用,直到你重新加载此页面:
第一步是要给你的提交按钮一个惟一的id,例如id =“mybutton“:
第二个(也是最后一次)的步骤是给两个javascript命令
标记。第一个将告诉浏览器禁用submit按钮的表单被提交之后,第二个将更改按钮的文本来给用户一些知道发生了什么。这是代码添加到你的表单标记:
onsubmit=document.getelementbyid('mybutton').disabled=true;
document.getelementbyid('mybutton').value='submitting, please wait...';
你的表单标记将类似于:
onsubmit=document.getelementbyid('mybutton').disabled=true;
document.getelementbyid('mybutton').value='submitting, please wait...';
>
就是这样。这种方法应该于大多数的浏览器(ie  +,firefox、opera、…)。
»防止多个表单提交使用cookie
如果你想避免重复提交的整个浏览器会话(或更长),你可以考虑使用cookie。例如编辑自己的表单处理脚本的浏览器发送cookie的形式后,已被处理,但在此之前的任何html或重定向打印头被。将这段代码的mail()命令后,应在大多数情况下:
setcookie('formsubmitted', '1');
然后在处理之前检查cookie。如果有这个访问者已经提交了表单在活跃的浏览器会话。将下列代码添加到窗体的开始处理脚本:
if (isset($_cookie['formsubmitted'])
{
    die('you may only submit this form once per session!');
}
就是这样!
如果修改,以阻止重复提交与cookies。注意:在上面的脚本和cookie的打印代码调用后添加一些代码的mail()函数:
please correct the following error:
exit();
}
?
http://www.bkjia.com/phpjc/477927.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/477927.htmltecharticle当提交一个html表单,它可能需要几秒钟前成功提交,并显示响应页面的形式。人们可以得到空闲,并单击提交按钮几次,这可能会导致重复...
其它类似信息

推荐信息