ajax之用户名唯一性验证的实现(php)
用户名唯一性验证的实现 在一些需要用户注册的系统中,由于系统需要保证用户名的唯一性,在注册时往往需要检查用户名。在一些使用传统方式设计的网站中,往往需要提交整个页面来进行用户名唯一性的检查。这种方式虽然可以正确检测用户名的唯一性,但是对于用户的友好度比较差。使用Ajax进行用户名唯一性检查可以在不影响用户表单填写的情况下执行,大大增加了表单的友好度。以下代码是一个进行用户名唯一性验证的例子。
[*]<html>
[*]
[*]<head>
[*]
[*]<title>AjaxExample</title>
[*]
[*]<scripttype="text/javascript">
[*]
[*]varxmlobj;//定义XMLHttpRequest对象
[*]
[*]functionCreateXMLHttpRequest()
[*]
[*]{
[*]
[*]if(window.ActiveXObject) //如果当前浏览器支持ActiveXobject,则创建ActiveXObject对象
[*]
[*]{
[*]
[*]xmlobj=newActiveXObject("Microsoft.XMLHTTP");
[*]
[*]}
[*]
[*]elseif(window.XMLHttpRequest)//如果当前浏览器支持XMLHttpRequest,则创建XMLHttpRequest对象
[*]
[*]{
[*]
[*]xmlobj=newXMLHttpRequest();
[*]
[*]}
[*]
[*]}
[*]
[*]functionValidate()//主程序函数
[*]
[*]{
[*]
[*]CreateXMLHttpRequest();//创建对象
[*]
[*]varshowurl="validate.php?username="+document.getElementById("username").value;//构造URL
[*]
[*]xmlobj.open("GET",showurl,true);//调用validate.php
[*]
[*]xmlobj.onreadystatechange=StatHandler;//判断URL调用的状态值并处理
[*]
[*]xmlobj.send(null);//设置为不发送给服务器任何数据
[*]
[*]}
[*]
[*]functionStatHandler()//用于处理状态的函数
[*]
[*]{
[*]
[*]if(xmlobj.readyState==4&&xmlobj.status==200)//如果URL成功访问,则输出网页
[*]
[*]{
[*]
[*]if(xmlobj.responseText=="1")//检查用户名是否有效
[*]
[*]{
[*]
[*]document.getElementById("msg").innerHTML="<fontcolor=RED>该用户名已被人使用</font>";
[*]
[*]}
[*]
[*]elseif(xmlobj.responseText=="0")
[*]
[*]{
[*]
[*]document.getElementById("msg").innerHTML="<fontcolor=GREEN>该用户名未被人使用</font>";
[*]
[*]}
[*]
[*]else
[*]
[*]{
[*]
[*]document.getElementById("msg").innerHTML="<fontcolor=RED>用户名验证程序出错</font>";
[*]
[*]}
[*]
[*]}
[*]
[*]}
[*]
[*]</script>
[*]
[*]</head>
[*]
[*]<body>
[*]
[*]<p><formaction="">
[*]
[*]用户名:<inputtype="text"id="username">
[*]
[*]<inputtype="button"value="用户名验证"onclick="Validate();">
[*]
[*]<divid="msg"></div>
[*]
[*]</form></p>
[*]
[*]</body>
[*]
[*]</html>
[*]
[*]
上面的代码通过请求validate.php来执行用户名的唯一性验证,并根据validate.php的返回内容来决定用户名是否唯一,代码如下所示。
[*]<?php
[*]
[*]$conn=mysql_connect("localhost","root","");
[*]
[*]$user=$_GET['username'];
[*]
[*]$querySQL="SELECT*FROMusersWHEREusername='$user'";
[*]
[*]mysql_select_db("cms",$conn);
[*]
[*]$rs=mysql_query($querySQL,$conn)ordie("Error");
[*]
[*]$rs_cnt=mysql_num_rows($rs);
[*]
[*]echo$rs_cnt;
[*]
[*]?>
[*]
运行结果如图50-6所示。
http://book.csdn.net/BookFiles/445/img/image031.jpg
页:
[1]