복붙노트

jQuery 사용자 이름이 이미 있는지 확인하기 위해 원격 메소드 사용법 검증

PHP

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

이 코드는 사용자 이름이 아닌 경우에도 항상 오류를 표시합니다.

jQuery Mobile 1.9.1을 사용하고 있습니다.

미리 감사드립니다.

해결법

  1. ==============================

    1.필자가 사용하고있는 PHP 기술을 변경하여이 작업을 수행하도록했습니다. 여기 PHP가 있습니다.

    필자가 사용하고있는 PHP 기술을 변경하여이 작업을 수행하도록했습니다. 여기 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;
    ?>
    

    도와 주신 모든 분들께 감사드립니다. :)

  2. ==============================

    2.내가보기에 두 가지 자원이 있습니다.

    내가보기에 두 가지 자원이 있습니다.

    validate plugin의 공식 예제 : http://jquery.bassistance.de/validate/demo/milk/

    jQuery 포럼 솔루션 : http://forum.jquery.com/topic/jquery-validation-plugin-remote-validation-problem-locksupup

    가능한 해결책은 내가 말할 수있는 한 응답을 json으로 인코딩 할 필요가 없다는 것입니다. json은 키 값 쌍을 필요로하므로 값만 제공하면 작동하지 않습니다. 그래서 'true'또는 'false'문자열로 반향을 시도하십시오.

    둘째, 유효성 검사는 POST가 아닌 양식 제출 방법에 GET을 사용합니다.

    참고 : 가능한 해결책 질문 만 함 jQuery 원격 유효성 검사

  3. from https://stackoverflow.com/questions/16577120/jquery-validate-remote-method-usage-to-check-if-username-already-exists by cc-by-sa and MIT license