我的个人博客:逐步前行STEP

PHP的图像处理功能强大,做一张验证码图片也是非常简单的,但是,在实现实时验证时,确遇到了一个难题:
我用nat123对我的电脑上的网站进行端口映射,实现了在外网访问,本来是采用cookie的方式用js对验证码进行验证,但是经检验发现nat123虽然使我的网站可以通过一个自定义的网址进行访问,但是产生验证码的php文件在网络上的位置竟然和其它页面不在一个域,经查询得知,因为输出图片的缘故,被作为缓存文件映射在了某个文件夹内,所以——其他页面在我的网址下,产生验证码的页面又在另一个网址里,所以它们的cookie不能共用,不管怎么设置path和domain都不管用,于是我只好采用session存储验证码了,因为session存在于服务器,也就是在我本地网址中都可以存取。
接下来是重头戏,之前只是粗略了解过ajax,对于它的用途和特性还是知道的,获取后台来的数据这个比较泛泛的概念具体的使用起来就不知道如何下手了。
首先,我分析了个例题的代码,用途是获取后台的一个文本文件的内容:

function getHTTPObject(){if(typedef XMLHttpRequest == "undefined")XMLHttpRequest = function(){try{ return new ActiveXObject("Msxml2.XMLHTTP.6.0");}catch(e){}try{ return new ActiveXObject("Msxml2.XMLHTTP.3.0");}catch(e){}try{ return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){}return false;}return new XMLHttpRequest();
}
function getNewContent(){var request = getHTTPObject();if(request){request.open("GET","TEST.txt",true);request.onreadystateschange = function(){alert(request.responseText);}}else{alert("no support XMLHttpRequest!");}
}

其中的关键是:

     request.open("GET","TEST.txt",true);request.onreadystateschange =function(){alert(request.responseText);}

这三句指定了GET请求发向的页面和XMLHttpRequest对象送回响应的时候触发的处理函数,而数据正是通过request.responseText获取的。


可是我要获取的数据是后台php文件产生的验证码,怎么让后台发送验证码?
无论GET还是POST方式都是把数据发送到后台,ajax从哪里取回后台的数据呢?
百思不得其解之下,我又查询了另一本资料,找到一个示例:
其中XMLHttpRequest对象送回响应的处理语句是:

request.onreadystateschange=alertContent;
function alertContent(){
...alert(request.responseText);
...
}

请求的文件为check.php
其中有这么几句条件输出:

if($info){echo "你的用户名可以使用";
}else {echo "该用户名已被注册";
}

而运行实例效果图中赫然在静态页面弹出消息框,内容如check.php页面的输出!!!
也就是说ajax能请求到一个php页面的输出内容,于是,接下来简单多了,因为图片也是验证码页面的输出,所以不能直接ajax验证码页面,不然就把图片的数据也获取了。
新建一个php页面:

sission_start();
$code="";
if(!empty($_session['check']))$code=$_session['check'];
echo $code;

再在前端用ajax向这个页面GET一个请求,就能用request.responseText获取验证码了。
然后把验证过程封装在一定条件触发的函数里,即可实时验证。

Ajax 和 PHP 实现验证码的实时验证相关推荐

  1. ajax注册表单用户名实时验证,Ajax注册表单用户名实时验证..doc

    Ajax注册表单用户名实时验证. Ajax注册表单用户名实时验证 1.1.1 摘要 很多时候在网站上注册时,我们会发现,注册表单通常需要检查用户名和电子邮件地址的可用性:从而确保用户之间不拥有相同的用 ...

  2. ajax简单的验证,ajax初探--实现简单实时验证(示例代码)

    学习技术最好的方式就是在做中学,做一个小demo来对前端输入进行实时验证. 利用ajax技术和Sevlet技术来实现,使用原生的js. 什么是ajax Ajax 即"Asynchronous ...

  3. Ajax注册表单用户名实时验证

    原文地址为: Ajax注册表单用户名实时验证 1.1.1 摘要 很多时候在网站上注册时,我们会发现,注册表单通常需要检查用户名和电子邮件地址的可用性:从而确保用户之间不拥有相同的用户名和电子邮件地址: ...

  4. ajax用户注册验证视频,jquery+ajax实现注册实时验证实例详解

    本文实例讲述了jquery+ajax实现注册实时验证.分享给大家供大家参考,具体如下: 当我们注册一个用户时,会实时提示该用户的信息是否可用,这就是ajax的应用,很久以前就看过这个实现了,今天又看了 ...

  5. 拖动图形验证码(极验验证)

    1.地址 http://www.geetest.com/   申请账号 2.样式 3. 前端 <div id="captcha"><div id="lo ...

  6. 【愚公系列】2022年12月 .NET CORE工具案例-滑块验证码和拼图验证功能实现

    文章目录 前言 1.滑块验证码的定义 2.滑块验证码的安全性分析 3.滑块验证码的第三方服务 一.滑动验证码和拼图验证功能实现 1.逻辑分析 2.新建项目 3.配置缓存 4.配置跨域 5.后端源码 6 ...

  7. Flask项目实战——7—(Redis数据库存储验证码信息、验证登录界面的表单信息、注册功能实现、登录实现)

    推荐一个API平台:聚合数据 1.Redis数据库存储验证码信息 保存手机验证码到Redis数据库 公有视图文件:apps/common/views.py # -*- encoding: utf-8 ...

  8. 短信验证码、图形验证码、邮件验证的自动化测试

    短信验证码.图形验证码.邮件验证问题在自动化测试中是一个很常见的问题,也是一个很棘手的问题.设计的初衷其实就是为了防自动化,防止一些人利用自动工具恶意攻击网站,而很不幸的是,我们所使用的一些自动化测试 ...

  9. tp中php验证码程序,thinkPHP 验证码生成与验证

    您现在的位置是:网站首页>>PHP>>thinkPHP thinkPHP 验证码生成与验证 发布时间:2018-12-06 13:34:11作者:wangjian浏览量:842 ...

最新文章

  1. C++求数组中的逆序对
  2. 2017-2018-1 20155321 《信息安全系统设计基础》课下作业3
  3. DL之Attention-ED:基于TF NMT利用带有Attention的 ED模型训练、测试(中英文平行语料库)实现将英文翻译为中文的LSTM翻译模型过程全记录
  4. Python的3种字符串格式化,做个超全对比!
  5. linux怎么检测文件完整性,Linux如何基于AIDE检测文件系统完整性
  6. java多线程的安全_java-多线程的安全问题
  7. 开发落网电台windows phone 8应用的计划(10)-----收尾
  8. JVM垃圾回收算法标记清除和复制算法
  9. 获取所有task_Asp.Net Core 轻松学-多线程之Task快速上手
  10. 分享小记:指数族分布
  11. Docker 架构原理剖析,万字详解!
  12. 2020年MySQL数据库面试题(50道题含答案和思维导图总结)
  13. “吃鸡”吗?《和平精英》来了,感觉不一般
  14. 乱世王者服务器维护,乱世王者微信534区仰不愧天开服时间表_乱世王者新区开服预告_第一手游网手游开服表...
  15. 浅浅总结一下HTML吧
  16. Private Set Intersection(PSI)
  17. 3.微信小程序-B站:wxml和wxss文件
  18. HTML5 div在界面水平垂直居中
  19. PMP项目管理项目整合管理
  20. chrome插件TE--在chrome中使用IE内核打开指定url

热门文章

  1. Smart Slider 3 Pro高级轮播插件绿色版 附200多模版[更新至v3.5.0.5]
  2. emui换鸿蒙内核,华为EMUI 11.1三月上线,安卓内核替换为鸿蒙内核
  3. 百度SEO emlog虚拟源码商城模板
  4. 周记php,工作周记 | php外包与php技术服务商
  5. whois查询系统网站程序
  6. 唯美动态个人404单页HTML源码
  7. datatable使用groupby进行分组统计 .
  8. SQLServer2000同步复制技术实现步骤作者
  9. MongoDB 教程八(结语): 一网打尽当下NoSQL类型、适用场景及使用公司
  10. 优秀的 jQuery 文本输入框自动完成 自动提示插件