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制作的意见反馈表源码
Mar 11 PHP
PHP 字符串 小常识
Jun 05 PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 PHP
php判断输入不超过mysql的varchar字段的长度范围
Jun 24 PHP
解析PHP中empty is_null和isset的测试
Jun 29 PHP
Yii使用find findAll查找出指定字段的实现方法
Sep 05 PHP
php中instanceof 与 is_a()区别分析
Mar 03 PHP
php恢复数组的key为数字序列的方法
Apr 28 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
用PHP的socket实现客户端到服务端的通信实例详解
Feb 04 PHP
PHP通过GD库实现验证码功能示例
Feb 23 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 addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
JS的get和set使用示例
2014/02/20 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
大学生村官心得体会范文
2014/01/04 职场文书
社团文化节邀请函
2014/01/10 职场文书
会议通知格式范文
2015/04/15 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS
pytorch显存一直变大的解决方案
2021/04/08 Python
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle