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


Posted in PHP onJuly 20, 2016

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

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="width:80px" type="text"/>
   <img class="code-img" style="height:30px;width: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;

 源码下载地址:Ajax实现提交表单时验证码自动验证

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
高亮度显示php源代码
Oct 09 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
php empty()与isset()区别的详细介绍
Jun 17 PHP
php 强制下载文件实现代码
Oct 28 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
php中简单的对称加密算法实现
Jan 05 PHP
Laravel中log无法写入问题的解决
Jun 17 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
PHP中数组转换为SimpleXML教程
Jan 27 PHP
PHP中的访问修饰符简单比较
Feb 02 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 #PHP
PHP+Ajax验证码验证用户登录
Jul 20 #PHP
PHP+Ajax实现验证码的实时验证
Jul 20 #PHP
php+ajax注册实时验证功能
Jul 20 #PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 #PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
Jul 20 #PHP
php+flash+jQuery多图片上传源码分享
Jul 27 #PHP
You might like
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
jQuery使用手册之一
2007/03/24 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
简洁的十分钟Python入门教程
2015/04/03 Python
Python中用于计算对数的log()方法
2015/05/15 Python
浅析Python编写函数装饰器
2016/03/18 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
利用Python优雅的登录校园网
2020/10/21 Python
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
android面试问题与答案
2016/12/27 面试题
.NET面试10题
2014/02/24 面试题
What is EJB
2016/07/22 面试题
化学教学随笔感言
2014/02/19 职场文书
平安校园建设方案
2014/05/02 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
党风廉正建设责任书
2015/01/29 职场文书
内勤岗位职责
2015/02/10 职场文书
婚宴父母致辞
2015/07/27 职场文书
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers