首页 后端开发 php教程 Ajax实时验证用户名/邮箱等是否已经存在的代码打包_PHP教程

Ajax实时验证用户名/邮箱等是否已经存在的代码打包_PHP教程

Jul 21, 2016 pm 03:22 PM
ajax 代码 分享 使用 实时 打包 技术 邮箱 验证

今天分享一个“利用Ajax技术来检测用户名是否存在”的例子。
利用Ajax技术来检测用户名是否存在的原理流程图:
Ajax实时验证用户名/邮箱等是否已经存在的代码打包_PHP教程

最终结果截图:

 


复制代码 代码如下:





Ajax检测用户名




用户名:





代码解释:
①实现该功能的核心代码在ajax.js,需要另外引进
②给form命名,因为后面我们需要利用JS来取得input框中的value
③给input框添加一个“onblur”事件,即当“焦点”失去时触发该事件(即流程图的“触发控件”)
用来放从服务器发送回来的数据(即“用户名已存在”等)
复制代码 代码如下:

mysql_connect("localhost",'root','');
mysql_select_db('test');
$sql="select * from ajax where name='$_GET[id]'";
$query=mysql_query($sql);
if(is_array(mysql_fetch_array($query))){
echo "用户名已存在";
}else{
echo "用户名可以使用";
}
?>

代码解释:
通过ajax的open方法,将用户输入”用户名“通过id传递给进来(即$_GET[id]),此时将对指定的数据库表中进行查询,检查是否有存在该“用户名”
ajax.js
复制代码 代码如下:

// JavaScript Document
var XHR; //定义一个全局对象
function createXHR(){ //首先我们得创建一个XMLHttpRequest对象
if(window.ActiveXObject){//IE的低版本系类
XHR=new ActiveXObject('Microsoft.XMLHTTP');//之前IE垄断了整个浏览器市场,没遵循W3C标准,所以就有了这句代码。。。但IE6之后开始有所改观
}else if(window.XMLHttpRequest){//非IE系列的浏览器,但包括IE7 IE8
XHR=new XMLHttpRequest();
}
}
function checkname(){
var username=document.myform.user.value;
createXHR();
XHR.open("GET","checkname.php?id="+username,true);//true:表示异步传输,而不等send()方法返回结果,这正是ajax的核心思想
XHR.onreadystatechange=byhongfei;//当状态改变时,调用byhongfei这个方法,方法的内容我们另外定义
XHR.send(null);
}
function byhongfei(){
if(XHR.readyState == 4){//关于Ajax引擎对象中的方法和属性,可以参考我的另一篇博文:http://www.cnblogs.com/hongfei/archive/2011/11/29/2265377.html
if(XHR.status == 200){
var textHTML=XHR.responseText;
document.getElementById('checkbox').innerHTML=textHTML;
}
}
}

代码解释:
①首先我们需要声明一个ajax引擎的对象:XHR(随便命名一个)
②因为微软的低版本IE和其他的浏览器创建ajax对象的方式不一样,现在IE和其他浏览器的市场份额几乎各占一半,所以我们得两方面都考虑到,IE-->ActiveXObject;其他-->XMLHttpRequest。我将她封装在一个函数中:createXHR
③我们在index.html中指定的当失去“焦点”时就会触发checkname()函数。那么我们如何将用户输入的“用户名”捕获呢?这里,利用js即可轻松捕获到document.myform.user.value(现在知道为何给form和input命名了吧,这一步对应流程图的“获得填写内容”),有兴趣的博友,可以试试在createXHR()的前一行敲行代码(alert(username)),将捕获到的用户名弹出试试看。
④Ajax引擎有几个方法和属性(可以参考我的另一篇博文:看图理解:普通交互方式和Ajax交互方式区别),使用之前我们得先调用函数craateXHR创建一个ajax对象
⑤有了ajax对象,有三个方法是必不可少的:open()、onreadystatechange、send()。
将请求发送到服务器,要使用open ()和send()方法
open()方法的第一个参数,指示采用GET或者POST方式进行传输。。。。。。
open()方法的第二个参数,指示要请求的URL地址(这里我们请求的是checkname.php文件),可以是绝对或相对地址
open()方法的第三个参数async指示是否采用异步请求,true为采用,这种情况下,通过ajax、js无需等待服务器响应,而是:①在等待服务器响应的同时执行其他脚本②当响应就绪后对响应进行处理。一般对一些小型的请求,async=false也是可以的,但此时就不要编写onreadystatechange 函数了
onreadystatechange事件:当ajax的属性readyState改变时,就触发此事件。在此事件中,当服务器响应已做好被处理的准备时(即readyState=4且status=200时),我们规定要让服务器做什么任务,这里我们规定将从数据库检索到的结果输出到id为”checkbox“的span标签中。
⑥通过checkname.php,查询数据库后,将得到查询结果(即服务器的响应,对应流程图中的”查询数据库“),此时数据还在ajax引擎中,如需获得该来自服务器的响应,我们需要使用XMLHttpRequest对象的responText或responseXML属性,并通过DOM属性innerHTML将从服务器响应回来的数据设置为id=”checkbox“的span标签的值
注:利用ajax监测邮箱是否存在一个道理,我们还可以利用ajax实时监测用户输入的密码强度,此时,需要用到可以把onblur事件改为onfocus事件。
原创 cnblogs 小飞

源码打包下载 /201112/yuanma/checkname_php.rar

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/324720.htmlTechArticle今天分享一个“利用Ajax技术来检测用户名是否存在”的例子。 利用Ajax技术来检测用户名是否存在的原理流程图: 最终结果截图: 复制代码...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Redis内存数据类型有哪些? Redis内存数据类型有哪些? Apr 10, 2025 pm 02:06 PM

Redis 提供五种核心内存数据类型:String:基础字符串存储,支持递增/递减操作。List:双向链表,高效插入/删除操作。Set:无序集合,用于去重操作。Hash:键值对存储,适合存储结构化数据。Zset:有序集合,每个元素带分数,可按分数排序。选择合适的数据类型对于优化性能至关重要。

如何使用 Composer 简化邮件营销:DUWA.io 的应用实践 如何使用 Composer 简化邮件营销:DUWA.io 的应用实践 Apr 18, 2025 am 11:27 AM

在进行邮件营销活动时,我遇到了一个棘手的问题:如何高效地创建并发送HTML格式的邮件。传统的方法是手动编写代码并使用SMTP服务器发送邮件,但这不仅耗时,而且容易出错。在尝试了多种解决方案后,我发现了DUWA.io,这是一个简单易用的RESTAPI,能够帮助我快速创建和发送HTML邮件。为了进一步简化开发流程,我决定使用Composer来安装和管理DUWA.io的PHP库——captaindoe/duwa。

不同数据库系统添加列的语法一样吗? 不同数据库系统添加列的语法一样吗? Apr 09, 2025 pm 12:51 PM

不同数据库系统添加列的语法大不相同,因数据库而异,例如:MySQL:ALTER TABLE users ADD COLUMN email VARCHAR(255);PostgreSQL:ALTER TABLE users ADD COLUMN email VARCHAR(255) NOT NULL UNIQUE;Oracle:ALTER TABLE users ADD email VARCHAR2(255);SQL Server:ALTER TABLE users ADD email VARCH

debian邮件服务器怎么监控 debian邮件服务器怎么监控 Apr 12, 2025 pm 10:06 PM

确保您的Debian邮件服务器稳定运行,需要有效的监控机制。本文介绍几种监控方法,包括日志检查、监控工具和报警系统设置。一、日志监控Debian邮件服务器的日志文件通常位于/var/log/目录下,例如/var/log/mail.log。定期检查这些日志可以帮助您及时发现潜在问题。二、监控工具及脚本示例以下提供几个Bash脚本示例,用于监控CPU、内存和磁盘空间使用率,并发送邮件报警:1.CPU使用率监控:#!/bin/bashTHRESHOLD=80EMAILS="your_emai

Nginx虚拟主机配置技巧,高效管理多个网站 Nginx虚拟主机配置技巧,高效管理多个网站 Apr 13, 2025 pm 10:03 PM

Nginx虚拟主机配置:玩转你的服务器花园你是否想过,一台服务器如何同时优雅地服务多个网站?答案就是Nginx虚拟主机配置。这篇文章将带你深入Nginx虚拟主机的配置技巧,让你高效管理你的“服务器花园”,并避免一些常见的坑。读完之后,你将能轻松配置虚拟主机,并理解其背后的机制,写出高效、稳定的Nginx配置文件。基础铺垫:别忘了你的工具箱在开始之前,你需要确保已经安装了Nginx,并且对基本的Linux命令和配置文件结构有所了解。我们不会在这里讲解如何安装Nginx,假设你已经完成了这一步。记住

十大数字虚拟货币app排行榜 币圈交易数字货币交易所排名前十 十大数字虚拟货币app排行榜 币圈交易数字货币交易所排名前十 Apr 22, 2025 pm 03:00 PM

十大数字虚拟货币app排行榜分别是:1. OKX,2. Binance,3. gate.io,4. Coinbase,5. Kraken,6. Huobi,7. KuCoin,8. Bitfinex,9. Bitstamp,10. Poloniex。这些交易所根据交易量、用户体验和安全性等因素评选,均提供多种数字货币交易服务和高效的交易体验。

bitget新用户注册指南2025 bitget新用户注册指南2025 Apr 21, 2025 pm 10:09 PM

在2025年注册Bitget的步骤包括:1.准备有效邮箱或手机号和稳定网络;2.访问Bitget官网;3.进入注册页面;4.选择注册方式;5.填写注册信息;6.同意用户协议;7.完成验证;8.获取并填写验证码;9.完成注册。注册后,建议登录账户、进行KYC身份验证,并设置安全措施以保障账户安全。

如何解决PHP邮件管理问题?使用php-imap/php-imap库可以轻松搞定! 如何解决PHP邮件管理问题?使用php-imap/php-imap库可以轻松搞定! Apr 17, 2025 pm 09:33 PM

在开发一个需要处理邮件的项目时,我遇到了一个棘手的问题:如何高效地管理邮箱、获取和删除邮件。尝试了多种方法后,我发现php-imap/php-imap库不仅解决了我的问题,还大大提升了程序的效率和稳定性。

See all articles