如果用户名存在阿贾克斯检查 [英] Ajax check if username exists

查看:102
本文介绍了如果用户名存在阿贾克斯检查的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法让我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆