PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)


Posted in PHP onDecember 28, 2011

前 言
直接上代码有点不厚道、于是按照天朝传统,整段描述吧。。。。(本人语言表达能力有限,大家忍着看)
功 能
在网站注册用户时使用,主要为了无刷新异步验证用户输入的用户名或者Email是否已注册。
这功能大家肯定见过,大多数网站都有的,我一直对这个功能很感兴趣,所以这几天研究了下 jQuery + Ajax
整了一个功能不算完善,但足以应付普通使用的代码 (更牛的功能大家自己去发掘)
文 件 说 明
reg.php //为注册页面
check_user.php //为用户验证页面 (GET,POST方式任选)
jquery-1.7.1.js //为jQuery文件 下载地址:http://code.jquery.com/jquery-1.7.1.js (右键另存为即可)
代码示例
reg.php 注册页面(内含2种方式,请任选一种)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>PHP+Ajax 异步通讯注册验证</title> 
<script type="text/javascript" src="jquery-1.7.1.js"></script> <!--千万别忘记引用jQuery文件,否则无法执行--> 
<script type="text/javascript"> 
$(function(){ 
//方式一 jQuery(普通应用时推荐,简单易用) 
$("#user").blur(function(){ //文本框鼠标焦点消失事件 
$.get("check_user.php?user="+$("#user").val(),null,function(data) //此处get方式 可换为post方式按需求调整,其他无需修改使用方式一样 
{ 
$("#chk").html(data); //向ID为chk的元素内添加html代码 
}); 
}) 
//方式二 aJax方式 (比较复杂,如无特殊需求推荐使用方式一) 
$("#user").blur(function(){ 
$.ajax({ 
url:"check_user.php", //请求验证页面 
type:"GET", //请求方式 可换为post 注意验证页面接收方式 
data:"user="+$("#user").val(), //取得表文本框数据,作为提交数据 注意前面的 user 此处格式 key=value 其他方式请参考ajax手册 
success: function(data) 
{ //请求成功时执行操作 
$("#chk").html(data); //向ID为chk的元素内添加html代码 
} 
}); 
}) 
}) 
</script> 
</head> 
<body> 
<form id="reg" action="" method="post"> 
用户名:<input id="user" type="text" /> <span id="chk"></span> 
</form> 
</body> 
</html>

check_user.php 异步通信页面 代码如下:
<?php 
header("Content-type:text/html;charset=gb2312"); 
//GET方式获取数据(取决于异步提交时提交方式) 
if($_GET['user']) 
{ 
$user=$_GET['user']; 
//此处可进行数据库匹配,本次省略直接判断 
if($user=="admin") 
echo "<font color=red>用户名已被注册!</font>"; 
else 
echo "<font color=red>用户名可以使用</font>"; 
}else{} 
//POST方式获取数据(取决于异步提交时提交方式) 
if($_POST['user']) 
{ 
$user=$_POST['user']; 
//此处可进行数据库匹配,本次省略直接判断 
if($user=="admin") 
echo "<font color=red>用户名已被注册!</font>"; 
else 
echo "<font color=red>用户名可以使用</font>"; 
}else{} 
?>

上面的2种方式分别又存在 post 和 get 两种方式,所以可以说有4种方式选择,应该可以满足普通应用了。
另外关于Ajax 内其他参数例如:请求数据类型,ajax开始操作等等事件。请参考ajax手册。这里不做阐述,较为复杂推荐使用第一种方式。
配 图:

PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)      PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)

PHP 相关文章推荐
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
php 学习资料零碎东西
Dec 04 PHP
php网上商城购物车设计代码分享
Feb 15 PHP
mysql总结之explain
Feb 27 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
php基于str_pad实现卡号不足位数自动补0的方法
Nov 12 PHP
php计算2个日期的差值函数分享
Feb 02 PHP
php遍历删除整个目录及文件的方法
Mar 13 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
php简单读取.vcf格式文件的方法示例
Sep 02 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 #PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 #PHP
url decode problem 解决方法
Dec 26 #PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 #PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 #PHP
php操作JSON格式数据的实现代码
Dec 24 #PHP
php文件怎么打开 如何执行php文件
Dec 21 #PHP
You might like
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
php目录拷贝实现方法
2015/07/10 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
JavaScript 字符串连接性能优化
2008/12/20 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
JavaScript中日常收集常见的10种错误(推荐)
2017/01/08 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Python实现快速多线程ping的方法
2015/07/15 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
区域销售经理职责
2013/12/22 职场文书
年终考核评语
2014/01/19 职场文书
学生会竞聘书范文
2014/03/31 职场文书
英文演讲稿
2014/05/15 职场文书
高中生学习计划书
2014/09/15 职场文书
解除施工合同协议书
2014/10/17 职场文书
预备党员表决心的话
2015/09/22 职场文书
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python