[英]Why my username check code is not working?
I tried making a username check code using JavaScript / php, now I can't really figure out how to do it.我尝试使用 JavaScript / php 制作用户名检查代码,现在我真的不知道该怎么做。
This is my html:这是我的 html:
<script type="text/javascript" src="js/jQuery.js"></script>
<script type="text/javascript" src="js/register.js"></script>
...
<input id="username" type="text">
this is my JavaScript:这是我的 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;
});
});
and this is my php file which gets the data (located in /js/validate.php:这是我获取数据的 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';
}
?>
check url url: "validate.php",
, if you run code from root folder and your php file located in /js/validate.php, then you didn't receive any data.检查 url
url: "validate.php",
,如果您从根文件夹运行代码并且您的 php 文件位于 /js/validate.php,那么您没有收到任何数据。 Look real adress in crhome inspector.在 crhome 检查器中查看真实地址。
check data, what you actually receive in $_POST array.检查数据,您在 $_POST 数组中实际收到的数据。
may be mysqli_query($con,"SELECT
Naam FROM
main WHERE
Naam ='$user';");
可能是
mysqli_query($con,"SELECT
Naam FROM
main WHERE
Naam ='$user';");
$user
interprete as $user string and not variable, then you need concat string solution like ='"+$user';"
$user
解释为 $user 字符串而不是变量,那么您需要 concat 字符串解决方案,例如='"+$user';"
. .
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.