Rumah > pembangunan bahagian belakang > tutorial php > Mengapa jQuery Saya Mengesahkan Kaedah Jauh Menunjukkan Ralat Ketersediaan Nama Pengguna yang Salah?

Mengapa jQuery Saya Mengesahkan Kaedah Jauh Menunjukkan Ralat Ketersediaan Nama Pengguna yang Salah?

Linda Hamilton
Lepaskan: 2024-12-23 15:10:18
asal
198 orang telah melayarinya

Why Does My jQuery Validate Remote Method Show the Wrong Username Availability Error?

Kaedah Jauh Sahkan jQuery: Menyelesaikan Masalah Pengesahan Nama Pengguna

Apabila menggunakan kaedah jauh jQuery Validate untuk menyemak sama ada nama pengguna wujud dalam pangkalan data, senario tertentu boleh membawa kepada mesej ralat yang salah. Artikel ini menangani isu biasa di mana mesej ralat "Nama pengguna ini sudah diambil" dipaparkan walaupun nama pengguna tidak wujud.

Memahami Kaedah Jauh

Kaedah jauh membolehkan anda mengesahkan medan terhadap data yang diambil daripada skrip sebelah pelayan. Ia memerlukan dua parameter:

  • url: URL skrip yang akan melaksanakan pengesahan
  • jenis: Kaedah permintaan HTTP (biasanya GET atau POST)

Contoh Pelaksanaan

Dalam kod yang disediakan, skrip jQuery berikut mengesahkan medan nama pengguna:

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

Skrip check-username.php bertanggungjawab untuk mendapatkan semula nama pengguna daripada permintaan POST dan menyemak sama ada ia wujud dalam pangkalan data:

<?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);
?>
Salin selepas log masuk

Menyelesaikan Isu

Skrip PHP asal dikembalikan benar untuk menunjukkan bahawa nama pengguna wujud, tetapi ia juga menggemakan hasil, yang menyebabkan jQuery Validate memaparkan mesej ralat palsu.

Skrip PHP yang diperbetulkan adalah 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;
?>
Salin selepas log masuk

Dengan hanya mengembalikan nilai boolean true atau false dalam skrip PHP, jQuery Validate kini boleh menentukan dengan betul sama ada nama pengguna itu wujud.

Atas ialah kandungan terperinci Mengapa jQuery Saya Mengesahkan Kaedah Jauh Menunjukkan Ralat Ketersediaan Nama Pengguna yang Salah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan