如果用户名存在阿贾克斯检查 [英] Ajax check if username exists
本文介绍了如果用户名存在阿贾克斯检查的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我无法让我的code工作。作为一个用户名,用户类型它会检查数据库,以查看它是否存在,如果它集&LT,P ID =checkusername>
为用户名两者。 如果没有将其设置为未选择。我不明白为什么我的code是行不通的。
1 register.html
< HTML>
<身体GT;
< CENTER>
<表格名称=注册行动=register.php方法=邮报>
用户名:LT;输入类型=文本名称=用户名的onkeyup =checkUsername(THIS.VALUE)/>
&其中,P的id =checkusername>检查与所述; /差异无显着
<输入类型=提交值=登陆/>
< /形式GT;
< / CENTER>
<脚本类型=文/ JavaScript的>
功能checkUsername(){
VAR XMLHTTP;
VAR用户名= document.forms [注册] [用户名]值。
如果(username.length == 0){
。的document.getElementById(checkusername)的innerHTML =空;
返回;
}
如果(window.XMLHtt prequest){
XMLHTTP =新XMLHtt prequest();
}其他{
XMLHTTP =新的ActiveXObject(Microsoft.XMLHTTP);
}
VAR URL =的login.php;
VAR PARAMS =标题= checkusername和放大器;用户名=+用户名+&放大器;密码=;
xmlhttp.open(POST,网址,真实);
xmlhttp.setRequestHeader(内容型,应用程序/ x-WWW的形式urlen codeD);
xmlhttp.setRequestHeader(内容长度,params.length);
xmlhttp.setRequestHeader(连接,关闭);
xmlhttp.onreadystatechange =功能(){//调用一个状态改变时的功能。
如果(xmlhttp.readyState == 4和&安培; xmlhttp.status == 200){
的document.getElementById(checkusername)的innerHTML = xmlhttp.responseText。
}
}
xmlhttp.send(PARAMS);
}
< / SCRIPT>
< /身体GT;
< / HTML>
2-register.php
< PHP
$标题= $ _ POST [标题];
如果(标题==checkusername){
checkusername($ _ POST [用户名]);
}其他{
回声不匹配。 $头;
}
功能连接(){
$ CON =的mysql_connect(URL,用户名,密码);
如果(!$ CON){
死亡(无法连接:mysql_error());
}
返回$ CON;
}
功能checkusername($用户名){
$ CON =连接();
mysql_select_db(数据库,$ CON);
$结果= mysql_query(SELECT * FROM用户其中username = \$用户名\。);
而($行= mysql_fetch_array($结果)){
如果(($行[用户名] == $的用户名)){
回声用户名两者与LT; BR />中;
返回;
}
}
回声没有被执行。
}
则mysql_close();
?>
解决方案
阅读这篇博客的 http://papermashup.com/jquery-php-mysql-username-availability-checker/
I am having trouble to get my code working. As a user types in a username it checks the database to see if it exists and if it does sets the <P id="checkusername">
to "Username Taken." and if not sets it to "Not Taken." I can't see why my code is not working.
1-register.html
<html>
<body>
<CENTER>
<form name="register" action="register.php" method="post">
Username: <input type="text" name="username" onkeyup="checkUsername(this.value)" />
<P id="checkusername">checker</P>
<input type="submit" value="Login" />
</form>
</CENTER>
<script type="text/javascript">
function checkUsername(){
var xmlhttp;
var username=document.forms["register"]["username"].value;
if(username.length==0){
document.getElementById("checkusername").innerHTML="Empty";
return;
}
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "login.php";
var params = "header=checkusername&username="+username+"&password="";
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.onreadystatechange = function() {//Call a function when the state changes.
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById("checkusername").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send(params);
}
</script>
</body>
</html>
2-register.php
<?php
$header = $_POST["header"];
if(header=="checkusername"){
checkusername($_POST["username"]);
}else{
echo "No match: " . $header;
}
function connection(){
$con = mysql_connect(URL, username, password);
if(!$con){
die('Could not connect: ' . mysql_error());
}
return $con;
}
function checkusername($username){
$con = connection();
mysql_select_db(database, $con);
$result = mysql_query("SELECT * FROM users WHERE username = \"" . $username . "\";");
while($row = mysql_fetch_array($result)){
if(($row['username'] == $username)){
echo "Username Taken.<br/>";
return;
}
}
echo "Not Taken.";
}
mysql_close();
?>
解决方案
Read this Blog http://papermashup.com/jquery-php-mysql-username-availability-checker/
这篇关于如果用户名存在阿贾克斯检查的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文