首頁 >資料庫 >mysql教程 >為什麼我的 jQuery 驗證遠端方法在檢查使用者名稱可用性時總是失敗?

為什麼我的 jQuery 驗證遠端方法在檢查使用者名稱可用性時總是失敗?

Barbara Streisand
Barbara Streisand原創
2024-12-24 01:08:11616瀏覽

Why Does My jQuery Validate Remote Method Always Fail When Checking Username Availability?

jQuery 驗證:使用遠端方法檢查使用者名稱可用性

在此問題中,使用者嘗試使用 jQuery.validate 的遠端方法驗證使用者名稱是否存在。然而,他們遇到了一個問題,即使沒有使用用戶名,驗證也總是失敗。

原始程式碼

jQuery:

$("#signupForm").validate({
    rules: {
        username: {
            required: true,
            minlength: 3,
            remote: "check-username.php"
        }
    },
    messages: {
        username: {
            remote: "This username is already taken! Try another."
        }
    }
});

check-username.php:

<?php
require_once "./source/includes/data.php";
header('Content-type: application/json');

$name = mysql_real_escape_string($_POST['username']);

$check_for_username = mysql_query("SELECT username FROM mmh_user_info WHERE username='$name'");

if (mysql_num_rows($check_for_username) > 0) {
    $output = true;
} else {
    $output = false;
}
echo json_encode($output);
?>

問題

原始程式碼使用了遠端方法不正確,因為它總是回傳true,表示使用者名稱是

解決方案

使用者透過更新PHP程式碼解決了該問題,如下所示:

<?php
require_once "./source/includes/data.php";
header('Content-type: application/json');
$request = $_REQUEST['username'];

$query = mysql_query("SELECT * FROM mmh_user_info WHERE username ='$username'");
$result = mysql_num_rows($query);
if ($result == 0) {
    $valid = 'true';
} else {
    $valid = 'false';
}
echo $valid;
?>

說明

更新的 PHP 程式碼:

  • 使用 $request 變數從請求。
  • 查詢資料庫統計指定使用者名稱的記錄數。
  • 如果沒有找到記錄,則將 $valid 設為 'true',表示該使用者名稱可用。

以上是為什麼我的 jQuery 驗證遠端方法在檢查使用者名稱可用性時總是失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn