1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > PHP+Ajax实现验证码的实时验证【PHP】

PHP+Ajax实现验证码的实时验证【PHP】

时间:2023-01-08 16:40:10

相关推荐

PHP+Ajax实现验证码的实时验证【PHP】

后端开发|php教程

ajax实现验证码,ajax获取验证码,ajax刷新验证码,php,ajax实时验证

后端开发-php教程

PHP的图像处理功能强大,做一张验证码图片也是非常简单的,但是,在实现实时验证时,确遇到了一个难题:

我用nat123对我的电脑上的网站进行端口映射,实现了在外网访问,本来是采用cookie的方式用js对验证码进行验证,但是经检验发现nat123虽然使我的网站可以通过一个自定义的网址进行访问,但是产生验证码的php文件在网络上的位置竟然和其它页面不在一个域,经查询得知,因为输出图片的缘故,被作为缓存文件映射在了某个文件夹内,所以——其他页面在我的网址下,产生验证码的页面又在另一个网址里,所以它们的cookie不能共用,不管怎么设置path和domain都不管用,于是我只好采用session存储验证码了,因为session存在于服务器,也就是在我本地网址中都可以存取。

接下来是重头戏,之前只是粗略了解过ajax,对于它的用途和特性还是知道的,获取后台来的数据这个比较泛泛的概念具体的使用起来就不知道如何下手了。

首先,我分析了个例题的代码,用途是获取后台的一个文本文件的内容:

foxphp源码,mac无法打开vscode,进入ubuntu卡,tomcat的测试方法,sqlite中定义浮点数,java爬虫实现爬取父子表单,php 根据url,品牌seo加盟代理项目,淘宝网站程序,网页设计美食模板下载lzw

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!"); }}

其中的关键是:

问卷调查php源码,ubuntu文件复制不了,用cmd怎么找Tomcat,网络爬虫 全彩,php内核源码入口,网站seo新手seolzw

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

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

易语言 获取源码,ubuntu如何修改路由,tomcat开启端口映射,爬虫新手接单,php冒泡算法视频,一个seo专员每天需要做哪些事lzw

——————————————————————————–

可是我要获取的数据是后台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获取验证码了。

然后把验证过程封装在一定条件触发的函数里,即可实时验证。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。