• PHP 防止表单重复提交


    <?php
     session_start();
     $_SESSION['fsess']=($_SESSION['fsess'])?$_SESSION['fsess']:time();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>防止表单重复提交</title>
    <SCRIPT language=Javascript type=text/javascript>
    <!--
    //*****Javascript防重复提交************
    var frm_submit=false;   //纪录提交状态
    function check_form(fobj) {
     var error = 0;
        var error_message = "";
     if (fobj.formtext.value=="")
     {
      error_message = error_message + "formtext 不能为空.
    ";
      error = 1;
     }
    
     if (frm_submit==true) {
      error_message = error_message + "这个表单已经提交.
    请耐心等待服务器处理你的请求.
    
    ";
      error=1;
     }
    
     if (error == 1) {
       alert(error_message);
       return false;
     } else {
       frm_submit=true;  //改变提交状态
       return true;
     }
    }
    -->
    </script>
    </head>
    <body>
    Javascript和服务器端 双重防止表单重复提交演示
    <br/>
    <br/>
    现在时间:<?php echo date("Y-m-d H:i:s"); ?>
    <br/>
    <br/>
    <?php
    if(@$_POST["faction"]=="submit"||@$_GET["faction"]=="submit"){
     //提交处理
    
     //*****服务器端防重复提交*******************
     //如果POST传来的表单生成时间与SESSION保存的表单生成时间
     //相同;为正常提交
     //不相同;为重复提交
     if($_SESSION["fsess"]==$_POST["fpsess"]){
      $_SESSION["fsess"]=time();
      echo  "提交内容:<br/>
    ";
      echo  $_POST["fpsess"]."<br/>
    ";;
      echo  $_POST["formtext"];
      echo "</body></html>";
      exit;
     } else {
      echo  "重复提交,退出!!!!<br/>
    ";
      echo "</body></html>";
      exit;
     }
    }
    //$_SESSION["fsess"]=time();
    ?>
    <form name="f_info" action="" method="post"  onSubmit="return check_form(this);">
    <input name="fpsess" type="hidden" value="<?php echo $_SESSION["fsess"]; ?>" />
    <!-- 保存表单生成时间 -->
    <input name="faction" type="hidden" value="submit" />
    <input name="formtext" id="formtext" type="text" value="" />
    <input type="submit" value="提交" />
    <input  type="reset" value="重置" />
    </form>
    </body>
    </html>
  • 相关阅读:
    <转>修正版 疯狂代码 写给WEB2.0的站长
    一组MSSQL千万数量级分页存储过程
    flash AS +xml 加载图片(使用MovieClipLoader实现LOADING)
    [转]优化SQL Server的内存占用之执行缓存
    日志记录组件[Log4net]详细介绍(转)
    IBatis.Net如何支持多个数据库 [转帖]
    c#导入导出EXCEL
    弄了个新blogs 欢迎捧场
    ActionSrcipt 资源
    一个鼠标拖出一个圆形的简单demo
  • 原文地址:https://www.cnblogs.com/shaoing/p/5569196.html
Copyright © 2020-2023  润新知