Rumah >pangkalan data >tutorial mysql >Mengapa jQuery Saya Mengesahkan Kaedah Jauh Sentiasa Gagal Apabila Menyemak Ketersediaan Nama Pengguna?

Mengapa jQuery Saya Mengesahkan Kaedah Jauh Sentiasa Gagal Apabila Menyemak Ketersediaan Nama Pengguna?

Barbara Streisand
Barbara Streisandasal
2024-12-24 01:08:11620semak imbas

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

jQuery Validate: Menggunakan Kaedah Jauh untuk Semak Ketersediaan Nama Pengguna

Dalam soalan ini, pengguna cuba mengesahkan kewujudan nama pengguna menggunakan kaedah jauh jQuery.validate. Walau bagaimanapun, mereka menghadapi isu di mana pengesahan sentiasa gagal, walaupun nama pengguna tidak diambil.

Kod Asal

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);
?>

Isu

Kod asal menggunakan alat kawalan jauh kaedah tidak betul, kerana ia sentiasa dikembalikan benar, menunjukkan bahawa nama pengguna adalah diambil.

Penyelesaian

Pengguna menyelesaikan isu dengan mengemas kini kod PHP mereka seperti berikut:

<?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;
?>

Penjelasan

Kod PHP yang dikemas kini:

  • Menggunakan pembolehubah $request untuk mendapatkan semula nama pengguna daripada permintaan.
  • Meminta pangkalan data untuk mengira bilangan rekod dengan nama pengguna yang ditentukan.
  • Menetapkan $valid kepada 'true' jika tiada rekod ditemui, menunjukkan bahawa nama pengguna tersedia.

Atas ialah kandungan terperinci Mengapa jQuery Saya Mengesahkan Kaedah Jauh Sentiasa Gagal Apabila Menyemak Ketersediaan Nama Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn