> php教程 > php手册 > 본문

防止多个PHP表单提交

WBOY
풀어 주다: 2016-06-06 19:55:43
원래의
1149명이 탐색했습니다.

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 当提交一个HTML表单,它可能需要几秒钟前成功提交,并显示响应页面的形式。人们可以得到空闲,并单击提交按钮几次,这可能会导致重复的表单提交。通常并不真的是一个问题,但在某些情况下,你可能要

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

    当提交一个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!');

    }

    就是这样!

[1] [2] 

防止多个PHP表单提交

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿