Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax检查用户名是否存在_Php_Javascript_Html_Ajax - Fatal编程技术网

Php Ajax检查用户名是否存在

Php Ajax检查用户名是否存在,php,javascript,html,ajax,Php,Javascript,Html,Ajax,我的代码无法正常工作。当用户键入用户名时,它会检查数据库是否存在,是否将设置为“用户名已使用”。如果未设置,则将其设置为“未使用”。我看不出我的代码为什么不起作用 1-register.html <html> <body> <CENTER> <form name="register" action="register.php" method="post"> Username: <input type="

我的代码无法正常工作。当用户键入用户名时,它会检查数据库是否存在,是否将

设置为“用户名已使用”。如果未设置,则将其设置为“未使用”。我看不出我的代码为什么不起作用

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>

用户名:
检查者
函数checkUsername(){
var-xmlhttp;
var username=document.forms[“register”][“username”].value;
if(username.length==0){
document.getElementById(“checkusername”).innerHTML=“Empty”;
返回;
}
if(window.XMLHttpRequest){
xmlhttp=新的XMLHttpRequest();
}否则{
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
var url=“login.php”;
var params=“header=checkusername&username=“+username+”&password=”“;
open(“POST”,url,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“内容长度”,参数长度);
setRequestHeader(“连接”,“关闭”);
xmlhttp.onreadystatechange=function(){//在状态更改时调用函数。
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“checkusername”).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send(params);
}
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();
?>


阅读此博客

阅读此博客

将您的问题限制在较小的代码示例中。并且仅限于相关部分。在php文件的while循环中,您总是输出“Not take”“,它应该处于IF条件下。”。。加。。为什么需要循环查看用户名是否匹配。。您的sql已经做到了这一点。。只要看看计数是否为0,它就不被占用,否则它就被占用taken@pom-如果你不愿意扩展它,它实际上对任何人都没有帮助…不要使用它,它已被弃用!将问题限制在较小的代码示例中。在php文件的while循环中,您总是输出“nottake”,它应该处于with IF条件下。。加。。为什么需要循环查看用户名是否匹配。。您的sql已经做到了这一点。。只要看看计数是否为0,它就不被占用,否则它就被占用taken@pom-如果你不愿意扩展它,它实际上对任何人都没有帮助…不要使用它,它已被弃用!