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 相关文章推荐
linux php mysql数据库备份实现代码
Mar 10 PHP
PHP 编程安全性小结
Jan 08 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
php获取'/'传参的值简单方法
Jul 13 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
PHP设计模式之简单工厂和工厂模式实例分析
Mar 25 PHP
PHP whois查询类定义与用法示例
Apr 03 PHP
php函数式编程简单示例
Aug 08 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 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
PHP中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
Python中encode()方法的使用简介
2015/05/18 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
Django实现组合搜索的方法示例
2018/01/23 Python
pandas数值计算与排序方法
2018/04/12 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
Python面向对象封装操作案例详解
2019/12/31 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
改革共识倡议书
2014/08/29 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
学校证明范文
2015/06/24 职场文书
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android