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反弹shell实现代码
Apr 22 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
PHP 第二节 数据类型之数值型
Apr 28 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
JSON字符串传到后台PHP处理问题的解决方法
Jun 05 PHP
session 加入redis的实现代码
Jul 15 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
PHP钩子实现方法解析
May 21 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
php 获取mysql数据库信息代码
2009/03/12 PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
2010/06/21 PHP
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
Vue中$refs的用法详解
2018/06/24 Javascript
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
[01:19:23]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第二场
2018/04/06 DOTA
python实现连接mongodb的方法
2015/05/08 Python
Python三级目录展示的实现方法
2016/09/28 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
详解Python self 参数
2019/08/30 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
python实现字符串和数字拼接
2020/03/02 Python
django 读取图片到页面实例
2020/03/27 Python
python编程的核心知识点总结
2021/02/08 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
离职证明格式样本
2015/06/12 职场文书