简单验证用户名是否注册的php+ajax代码

Posted on 2008-08-02 12:30 飞呀飞 阅读(1466) 评论(0)  编辑 收藏 引用 网摘 所属分类: php
网上注册时经常发现在输入用户名后就可以立即知道该用户名是否可用,自己简单做了个,php+sqlite的,很简单可以演示一下原理
注册文件zc.html
<!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=utf-8" /> 
<title>注册验证</title> 
<script language="javascript"> 
function getXmlHttp(){ 
    
var http_request = false
    
if (window.XMLHttpRequest){ 
        http_request 
= new XMLHttpRequest(); 
        
if (http_request.overrideMimeType){ 
            http_request.overrideMimeType('text
/xml'); 
        } 
    }
else if (window.ActiveXObject){ 
        
try
            http_request 
= new ActiveXObject("Msxml2.XMLHTTP"); 
        } 
        
catch (e){ 
            
try
                http_request 
= new ActiveXObject("Microsoft.XMLHTTP"); 
            }
catch (e) 
            {} 
        } 
    } 
    
if (!http_request){ 
        alert('Giving up :( Cannot create an XMLHTTP instance'); 
        
return false
    } 
    
return http_request; 

function login_action(){    
    
var ul="./zc.php?us=" + document.getElementById("us").value;     
    df 
= getXmlHttp(); 
    df.onreadystatechange 
= onLogin; 
    df.open(
"GET",ul,true); 
    df.setRequestHeader('If
-Modified-Since', '0'); 
    df.send(
null); 

function onLogin(){ 
    
if(df.readyState == 4 ){         
        
if(df.status == 200) { 
             
if (df.responseText.toString()!="OK"){ 
                document.getElementById(
"zc_info").innerHTML ="用户名已被占用!";         
             }
else
                 document.getElementById(
"zc_info").innerHTML ="该用户名可以使用!"
             } 
        } 
    }     

</script> 
</head> 
<body> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<form id="fm_zc" name="fm_zc" method="post" > 
  
<input name="us" type="text" id="us" onblur="login_action()" /> 
</form> 
<div id="zc_info"></div> 
<p>&nbsp;</p> 
</body> 
</html>

数据库操作文件zc.php
<? 
$name=$_GET['us']; 
$dbh=new PDO('sqlite:./db'); 
$dbh->beginTransaction();   
$sth = $dbh->prepare("SELECT * FROM user where username='".$name."'"); 
$sth->execute(); 
if ($result = $sth->fetch(PDO::FETCH_OBJ)){  
echo "NO"
}
else
echo "OK"

?>

数据库很简单就一张表
table user(id ,username,password)

只有注册用户登录后才能发表评论。
网站导航:

Copyright © 飞呀飞