Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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
Javascript 为什么我的用户名检查代码不起作用?_Javascript_Php - Fatal编程技术网

Javascript 为什么我的用户名检查代码不起作用?

Javascript 为什么我的用户名检查代码不起作用?,javascript,php,Javascript,Php,我试着用JavaScript/php编写用户名检查代码,但现在我真的不知道怎么做 这是我的html: <script type="text/javascript" src="js/jQuery.js"></script> <script type="text/javascript" src="js/register.js"></script> ... <input

我试着用JavaScript/php编写用户名检查代码,但现在我真的不知道怎么做

这是我的html:

<script type="text/javascript" src="js/jQuery.js"></script>
<script type="text/javascript" src="js/register.js"></script>
...
<input id="username" type="text">
这是我的JavaScript:

$(function() {
$("#username").change(function() {
// getting the value that user typed
var checkString    = $("#username").val();
if(checkString.indexOf('<') >=0){
document.getElementById('return').innerHTML="Userame contains illigal characters.";
return;
}
if(checkString.indexOf('>') >=0){
document.getElementById('return').innerHTML="Userame contains illigal characters.";
return;
}
if(checkString.indexOf('(') >=0){
document.getElementById('return').innerHTML="Userame contains illigal characters.";
return;
}
if(checkString.indexOf(')') >=0){
document.getElementById('return').innerHTML="Userame contains illigal characters.";
return;
}
if(checkString.indexOf("'") >=0){
document.getElementById('return').innerHTML="Userame contains illigal characters.";
return;
}
if(checkString.indexOf('/') >=0){
document.getElementById('return').innerHTML="Userame contains illigal characters.";
return;
}
if(checkString.indexOf('[') >=0){
document.getElementById('return').innerHTML="Userame contains illigal characters.";
return;
}
    if(checkString.indexOf(']') >=0){
document.getElementById('return').innerHTML="Userame contains illigal characters.";
return;
}
    if($("#Username").val().length < 6){
document.getElementById('return').innerHTML="Your chosen name is too short.";
}
// forming the queryString
var data            = 'user='+ checkString;

// if checkString is not empty
if(checkString) {
    // ajax call
    $.ajax({
        type: "POST",
        url: "validate.php",
        data: data,
        beforeSend: function(html) { // this happen before actual call
        },
        success: function(html){
        if(html == 'free'){
        document.getElementById('return').innerHTML="Username "+ checkString +" is available";
        }
        else if(html == 'taken'){
        document.getElementById('return').innerHTML="Username "+ checkString +" is taken";
        }
        }
    });
}
return false;
});
});
这是我的php文件,它获取位于/js/validate.php中的数据:

<?php

$user = $_POST['user'];
$user = mysql_real_escape_string($user);
$con = mysqli_connect("localhost","USER","PASS","DB");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$query = mysqli_query($con,"SELECT `Naam` FROM `main` WHERE `Naam` ='$user';");
$row = mysqli_num_rows($query);
if($row == 0) {
    echo 'free';
} else {
    echo 'taken';
}
?>
检查url:validate.php,如果从根文件夹和位于/js/validate.php中的php文件运行代码,则不会收到任何数据。在crhome inspector中查看真实地址

检查数据,即您在$\u POST数组中实际收到的数据

可以是mysqli_query$con,从main中选择naam,其中naam='$user'$用户将解释为$user字符串而不是变量,然后需要concat字符串解决方案,如='+$user'


什么不起作用?请求是否正确发送?试着检查一下chrome inspector?你收到的$u POST['user']正确吗?哇,JS可以大幅减少。查看REGEX.Nathan P。它没有将所需的文本输入到我在htmlDon中忘记提到的DIV中。别忘了在服务器端进行检查。期望服务器上的任何东西都被污染。Js很容易被绕过。我还不能投票,因为我的排名,但问题是位置不对哈哈谢谢!不客气。没关系,主要是你的代码运行良好。米克尔,在《解决排名问题》一书中,你可以批准我对可能出现的问题的评论,作为对你问题的回答