PHP+Ajax檢測用戶名或郵件注冊時是否已經存在是論壇或會員系統中常見的一個重要功能。本文就以實例形式簡單描述這一功能的實現方法。具體步驟如下:
一、PHP檢測頁面
check.php頁面代碼如下:
<script type="text/javascript" src="jiance.js"></script> <form name="myform" action="" method="get"> 用戶名:<input name="user" value="" type="text" onblur="funtest100()" /> <div id="test100"></div> </form>
二、Ajax驗證頁面
check.js頁面代碼如下:
var xmlHttp; function S_xmlhttprequest(){ if(window.ActiveXobject){ xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); }else if(window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); } } function funtest100(){ var f = document.getElementsByTagName_r('form')[0].user.value;//獲取文本框內容 S_xmlhttprequest(); xmlHttp.open("GET","jcfor.php?id="+f,true);//找開請求 xmlHttp.onreadystatechange = byphp;//准備就緒執行 xmlHttp.send(null);//發送 } function byphp(){ //判斷狀態 if(xmlHttp.readyState==1){//Ajax狀態 document.getElementByIdx_x_x('test100').innerHTML = "正在加載"; } if(xmlHttp.readyState==4){//Ajax狀態 if(xmlHttp.status==200){//服務器端狀態 var bytest100 = xmlHttp.responseText; //alert(bytest100); document.getElementByIdx_x_x('test100').innerHTML = bytest100; } } }
三、PHP驗證頁面
chkfor.php頁面代碼如下:
<?php if($_GET[id]){ sleep(1); $conn=mysql_connect('localhost','root',''); mysql_select_db('test',$conn); $sql="SELECT * FROM `user` WHERE `name`='$_GET[id]'"; $q=mysql_query($sql); if(is_array(mysql_fetch_row($q))){ echo "用戶名已經存在"; }else{ echo "用戶名可以使用"; } } ?>
希望本文所述實例對大家PHP程序開發有所幫助。
文件包括:
userreg.html ( 注冊頁面)
ajaxreg .js(AJAX腳本及實時驗證的JS腳本)
checkuserreg .php(連接數據庫並檢測用戶名是否已注冊的頁面)
userreg.html ( 注冊頁面) 復制PHP內容到剪貼板
PHP代碼:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<script language="javascript" src="ajaxreg.js"></script>
<script language="JavaScript" type="text/JavaScript">
function check(){ //用戶名為空的時候
if(document.reg.username.value==""){
document.getElementById('check').innerHTML=" <font color=red>用戶名不能為空!</font>";
document.reg.username.focus();
return false;
}
if(document.getElementById('check').innerHTML==" <font color=red>The number is registed</font>"){ //用戶名已被注冊的時候(<font color=red>The number is registed</font>是AJAX返回回來的)
document.reg.username.focus();
return false;
}
if(document.reg.userpwd.value==""){ //密碼為空的時候
document.getElementById('pwd').innerHTML=" <font color=red>用戶密碼不能為空!</font>";
document.reg.userpwd.focus();
return false;
}
if(document.reg.userpwd.value.length<6){ //密碼長度錯誤的時候
document.getElementById('pwd').innerHTML=" <font color=red>密碼長度不能小於6位!</font>";
document.reg.userpwd.focus();
return false;
}
if (document.reg.reuser......余下全文>>
<script type='text/javascript'>
var username=$('#username').val();
$.post('xx.php',{username:username},function(data){
if(data==1){
alert("已存在");//或者 讓個span或者div 顯示 $('#xx').html(“已存在”);
}
});
</script>
xx.php
$username=$_POST['username'];
$sql="select * from user where username=$username";
$handle=mysql_query($sql);
$num=mysql_num_rows($handle);
if($num>0){
$flag=1;
}else{
$flag=0;
}
exit($flag);