31

10-2012

当提交一个HTML表单,如果数据量比较大它可能需要几秒钟前成功提交,并显示响应页面的形式。人们可以得到空闲,并单击提交按钮几次,这可能会导致重复的表单提交。通常并不真的是一个问题,但在某些情况下,你可能要防止这种情况的发生。
下面你会发现两个简单的技巧,以防止重复提交,您可以使用这些或两者的结合。

1防止多个表单提交使用Javascript
使用Javascript块重复提交可能是最简单的方法。当有人提交表单我们简单地禁用Submit按钮,可能改变它的值为更具描述性的东西,比如“提交,请稍候……”
试着点击这个按钮,例如。它仍将禁用,直到你重新加载此页面:
第一步是要给你的提交按钮一个惟一的id,例如id =“myButton“:
<input type=”submit” value=”Submit” id=”myButton” />
第二个(也是最后一次)的步骤是给两个Javascript命令<form>标记。第一个将告诉浏览器禁用submit按钮的表单被提交之后,第二个将更改按钮的文本来给用户一些知道发生了什么。这是代码添加到你的表单标记:
onsubmit=”document.getElementById(‘myButton’).disabled=true;
document.getElementById(‘myButton’).value=’数据正则提交请稍候…’;”
你的表单标记将类似于:
<form action=”contact.php” method=”post”
onsubmit=”document.getElementById(‘myButton’).disabled=true;
document.getElementById(‘myButton’).value=’数据正则提交请稍候…’;”
>
就是这样。这种方法应该于大多数的浏览器(IE  +,FireFox、Opera、…)。
2防止多个表单提交使用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()函数:

 

本文链接:http://www.521php.com/archives/605/

程序本天成,妙手偶得之!我们只是代码的搬运工!

转载请注明:http://www.521php.com/archives/605/

目前有5 条留言

  1. 2016年04月12日 下午 10:03 Natalie   |  引用  |  #1     

    I was just looking at your PHP防止多个form表单提交 | 521PHP博客 site and see that your site has the potential to get a lot of visitors. I just want to tell you, In case you don’t already know… There is a website service which already has more than 16 million users, and the majority of the users are interested in topics like yours. By getting your website on this service you have a chance to get your site more popular than you can imagine. It is free to sign up and you can find out more about it here: http://janluetzler.de/9zw – Now, let me ask you… Do you need your site to be successful to maintain your way of life? Do you need targeted visitors who are interested in the services and products you offer? Are looking for exposure, to increase sales, and to quickly develop awareness for your website? If your answer is YES, you can achieve these things only if you get your site on the network I am talking about. This traffic service advertises you to thousands, while also giving you a chance to test the service before paying anything. All the popular blogs are using this service to boost their traffic and ad revenue! Why aren’t you? And what is better than traffic? It’s recurring traffic! That’s how running a successful website works… Here’s to your success! Find out more here: http://janluetzler.de/9zw

  2. 2016年05月02日 下午 10:10 Emily   |  引用  |  #2     

    Hello my name is Emily and I just wanted to send you a quick message here instead of calling you. I discovered your PHP防止多个form表单提交 | 521PHP博客 website and noticed you could have a lot more traffic. I have found that the key to running a popular website is making sure the visitors you are getting are interested in your website topic. There is a company that you can get keyword targeted traffic from and they let you try their service for free for 7 days. I managed to get over 300 targeted visitors to day to my website. Check it out here: http://mariowelte.de/8ajy

  3. 2017年02月24日 下午 7:57 Sabrina Warren   |  引用  |  #3     

    I was just looking at your PHP防止多个form表单提交 | 521PHP博客 website and see that your site has the potential to become very popular. I just want to tell you, In case you didn’t already know… There is a website network which already has more than 16 million users, and most of the users are looking for topics like yours. By getting your website on this service you have a chance to get your site more visitors than you can imagine. It is free to sign up and you can read more about it here: http://rhr.online/39ioc – Now, let me ask you… Do you need your website to be successful to maintain your way of life? Do you need targeted visitors who are interested in the services and products you offer? Are looking for exposure, to increase sales, and to quickly develop awareness for your website? If your answer is YES, you can achieve these things only if you get your site on the service I am describing. This traffic service advertises you to thousands, while also giving you a chance to test the network before paying anything at all. All the popular blogs are using this network to boost their traffic and ad revenue! Why aren’t you? And what is better than traffic? It’s recurring traffic! That’s how running a successful website works… Here’s to your success! Read more here: http://acortarurl.es/5i

  4. 2017年10月24日 下午 12:00 Sandra   |  引用  |  #4     

    I decided to leave a message here on your PHP防止多个form表单提交 | 521PHP博客 page instead of calling you. Do you need more likes for your Facebook Fan Page? The more people that LIKE your website and fanpage on Facebook, the more credibility you will have with new visitors. It works the same for Twitter, Instagram and Youtube. When people visit your page and see that you have a lot of followers, they now want to follow you too. They too want to know what all the hype is and why all those people are following you. Get some free likes, followers, and views just for trying this service: http://s.t0m-s.be/42 Unsubscribe here: http://corta.co/eXu

  5. 2017年11月04日 下午 1:12 Andrea Gibson   |  引用  |  #5     

    I came to your PHP防止多个form表单提交 | 521PHP博客 page and noticed you could have a lot more traffic. I have found that the key to running a website is making sure the visitors you are getting are interested in your subject matter. We can send you targeted traffic and we let you try it for free. Get over 1,000 targeted visitors per day to your website. Start your free trial: http://url.euqueroserummacaco.com/ifa Unsubscribe here: http://priscilarodrigues.com.br/url/11

发表评论

昵称:

网址:

eg.博客主题调用的是Gravatar头像,你可以通过邮箱注册获得头像.
/ 快捷键:Ctrl+Enter