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+MySQL5.0中文乱码解决方法
Nov 20 PHP
php桌面中心(四) 数据显示
Mar 11 PHP
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
PHP中对用户身份认证实现两种方法
Jun 04 PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 PHP
php+js实现异步图片上传实例分享
Jun 02 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
Laravel SQL语句记录方式(推荐)
May 26 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 PHP
laravel实现上传图片的两种方式小结
Oct 12 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 常见郁闷问题答解
2006/11/25 PHP
用PHP制作的意见反馈表源码
2007/03/11 PHP
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
firefo xml 读写实现js代码
2009/06/11 Javascript
js 字符串操作函数
2009/07/25 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
微信小程序实现运动步数排行功能(可删除)
2018/07/05 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
在Python中关于中文编码问题的处理建议
2015/04/08 Python
Python中Threading用法详解
2017/12/27 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
Pygame框架实现飞机大战
2020/08/07 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
.NET方向面试题
2014/11/20 面试题
马智宇结婚主持词
2014/04/01 职场文书
爱心捐款活动总结
2015/05/09 职场文书
nginx常用配置conf的示例代码详解
2022/03/21 Servers
Win11怎么修改电源模式?Win11修改电源模式的方法
2022/04/05 数码科技
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技