簡體   English   中英

為什么我的用戶名校驗碼不起作用?

[英]Why my username check code is not working?

我嘗試使用 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';
}
?>
  1. 檢查 url url: "validate.php", ,如果您從根文件夾運行代碼並且您的 php 文件位於 /js/validate.php,那么您沒有收到任何數據。 在 crhome 檢查器中查看真實地址。

  2. 檢查數據,您在 $_POST 數組中實際收到的數據。

  3. 可能是mysqli_query($con,"SELECT Naam FROM main WHERE Naam ='$user';"); $user解釋為 $user 字符串而不是變量,那么您需要 concat 字符串解決方案,例如='"+$user';" .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM