• Ajax提交表单时验证码自动验证 php后端验证码检测


    本文通过源码展示如何实现表单提交前,验证码先检测正确性,不正确则不提交表单,更新验证码。

    1、前端代码 index.html

     <!DOCTYPE html>
    <html>
    <head>
     <title>验证码提交自验证</title>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <meta http-equiv="Content-Language" content="zh-CN" />
    </head>
    <body>
     <form action="doPost.php" method="POST">
      
      <div class="row">
       <label for="username">用户名</label>
       <input type="text" name="username" id="username" />
      </div>
      <div class="row">
       <label for="mod-captcha-code">验证码</label>
       <input name="code" id="mod-captcha-code" size="6" class="zjcaptcha" style="80px" type="text"/>
       <img class="code-img" style="height:30px;80px;" src="createcode.php?t=0" onclick="this.src=this.src.substring(0,this.src.indexOf('?')+1)+Math.random();return false;" />
       <script type="text/javascript" src="http://www.zjmainstay.cn/jquery/jquery-1.8.2.min.js"></script>
       <div class="yzmtips" style="color:red"></div>
      </div>
      <div class="row">
       <input type="submit" value="提交" class="submitBtn"/>
      </div>
     </form>
    <script>
    (function($){
     $(document).ready(function(){
      $(".submitBtn").click(function() {
       var obj = $(this);
       $.ajax({
        url:'checkcode.php',
        type:'POST',
        data:{code:$.trim($("input[name=code]").val())},
        dataType:'json',
        async:false,
        success:function(result) {
         if(result.status == 1) {
          obj.parents('form').submit(); //验证码正确提交表单
         }else{
          $(".code-img").click();
          $(".yzmtips").html('验证码错误!');
          setTimeout(function(){
           $(".yzmtips").empty();
          },3000);
         }
        },
        error:function(msg){
         $(".yzmtips").html('Error:'+msg.toSource());
        }
       })
       return false;
      })
     });
    })(jQuery);
    </script>
    </body>
    </html>

     2、后端验证码检测 checkcode.php

     <?php
    /**
    * 用户验证码验证文件
    * @Author:Zjmainstay
    * @version : 1.0
    * @creatdate: 2013-10-4
    */
    session_start();
    echo json_encode(array('status'=>(int)($_SESSION["CHECKCODE"] == $_POST['code'])));
    exit; 
    
  • 相关阅读:
    第06组 Alpha事后诸葛亮
    第06组 Alpha冲刺(6/6)
    第06组 Alpha冲刺(5/6)
    2020ASE-课程总结
    设计也可以按图索骥
    2020ASE第二次博客—由需求分析来看软件开发的挑战
    2020ASE第一次课程作业—期望与笃信
    git学习笔记(1)
    课程模块——课程界面与技术文档
    企业应用开发(5)--ERD初步设计
  • 原文地址:https://www.cnblogs.com/xiadongqing/p/6805090.html
Copyright © 2020-2023  润新知