日期:2014-05-16  浏览次数:20637 次

AJAX实现用户名验证
//该文件为register.php,在客户端
<html>
<head>
<title>用户注册</title>
<meta http-equiv = "content-type" content = "text/html;charset=utf-8"/>
<script type = "text/javascript" >
	//创建ajax引擎
	function getXmlHttpObject(){
		var xmlHttpRequest;
		//不同浏览器获取对象XmlHttpRequest对象方法不同
		if(window.ActiveXObject){
			xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
		}else{
			xmlHttpRequest = new XMLHttpRequest();
		}
		return xmlHttpRequest;
	}
	/*
	function getXmlHttpObject(){
		//不同浏览器获取对象XmlHttpRequest对象方法不同
		var xmlHttp = null;
		try{
			//Firefox, Opera 8.0+, Safari
			xmlHttp = new XMLHttpRequest();
		}catch(e){
			//Internet Explorer
			try{
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			}catch(e){
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
		return xmlHttp;
	}
	*/
	
	var myXmlHttpRequest = "";
	//验证用户名是否存在
	function checkName(){
		//1号线
		myXmlHttpRequest = getXmlHttpObject();

		//判断创建成功?
		if(myXmlHttpRequest){
			//通过myXmlHttpRequest对象发送请求到服务器的某个页面
			//第一个参数表示请求的方式, "get"/"post"
			//第二个参数指定url,对哪个页面发出ajax请求(本质仍然是HTTP请求)
			//第三个参数.true表示使用异步机制,false表示不使用异步机制
			
			//注意:此处如果"username"和"="之间有空格,否则会出错,在服务器端接收不到"username";
			//注意:如果"="之后有空格则将此空格也作为接收到的username的值的一部分。
			//即在服务器端收到的username的值=“ ”(即空格)+从客户端发送的username值。
			var url = "/AjaxTest/registerProcess.php?username=" + $("username1id").value;
			//window.alert(url);
			
			//打开请求
			myXmlHttpRequest.open("get",url,true);
			//指定回调函数.process是个函数名
			myXmlHttpRequest.onreadystatechange = process;

			//真正发送请求。如果是get请求则填入null即可
			//如果是post请求,则填入实际的数据
			//2号线
			myXmlHttpRequest.send(null);			
			
		}
	}

	//回调函数
	function process(){
		//window.alert("这是回调函数" + myXmlHttpRequest.readyState);
		//我要取出从registerProcess.php页面返回的数据
		
		if(myXmlHttpRequest.readyState == 4){
			
			//取出值,根据返回信息的格式而定
			//window.alert("服务器返回" + myXmlHttpRequest.responseText);
			//4号线
			$('myResponse').value = myXmlHttpRequest.responseText;
		}
		
	}
	
	function $(id){
		return document.getElementById(id);
	}
</script>
</head>
<body>
	<form action = "" method = "post">
		用户名:<input type = "text" name = "username1" id = "username1id" >
			<input type = "button" onclick = "checkName();"  value = "验证用户名">
			<input style = "border-width: 0; color: red" type = "text" id = "myResponse">
			<br/>
		密码:<input type = "password" name = "password"><br/>
		电子邮件:<input type = "text" name = "email"><br/>
		<input type = "submit" value = "用户注册">
	</form>
	<form action = "" method = "post">
		用户名:<input type = "text" name = "username2" >
			
			<br/>
		密码:<input type = "password" name = "password"><br/>
		电子邮件:<input type = "text" name = "email"><br/>
		<input type = "submit" value = "用户注册">
	</form>
</body>
</html>
//该文件为registerProcess.php,在服务器端
<?php
	//接收数据
	$username = $_GET["username"];
	
	if($username=="shunping"){
		echo "用户名不可用";
	}else{
		echo "用户名可用";
	}
	echo "用户名:".$username;//3号线
?>