我正在使用jQuery ajax和php制作注册系统。在我的脚本开头我正在进行两次检查。我正在检查用户名是否太长,然后我检查用户名是否已被占用。 当我检查用户名是否已被占用时,php脚本会返回一个值,但如果用户名太长,则不会返回任何内容。
代码(PHP):
$usernameR = $_REQUEST['username'];
if($usernameR > 8)
{
echo "toolong";
}
else
{
$passwordR = $_REQUEST['password'];
require_once("dbConn.php");
$usernameRSF = mysqli_real_escape_string($connect, $usernameR);
$usernameRSF = htmlspecialchars($usernameRSF);
$nQuery = mysqli_query($connect, "SELECT * FROM users WHERE username LIKE '%".$usernameRSF."%'") or die("Query error: ".mysqli_error($connect));
$result = mysqli_num_rows($nQuery);
if($result > 0)
{
echo "taken";
}
}
码(JS):
function register()
{
$(document).ready(function()
{
var username = $("#usernameIn").val();
var password = $("#usernameIn").val();
if(username != "" && password != "")
{
$("#reError").text(" ");
$("#reError").fadeOut("slow");
$.ajax({
url: "../system/register.php",
type: "POST",
dataType: "text",
data: { username: username, password: password },
success: function(ajaxResult)
{
alert(ajaxResult);
if(ajaxResult == "taken")
{
$("#reError").text("Username already exists");
$("#reError").fadeIn("slow");
}
if(ajaxResult == "toolong")
{
$("#reError").text("Username too long");
$("#reError").fadeIn("slow");
}
}
});
}
else
{
$("#reError").text("You can't leave username or password empty!");
$("#reError").fadeIn("slow");
}
});
}
答案 0 :(得分:2)
尝试改变,
$usernameR = $_REQUEST['username'];
到
$usernameR = strlen($_REQUEST['username']);
答案 1 :(得分:1)
您必须比较字符串的长度而不是字符串本身。
答案 2 :(得分:1)
而不是:
if($usernameR > 8)
使用:
if(strlen($usernameR) > 8)