jQuery 유효성 검사 프레임워크를 사용하여 데이터베이스에서 사용자 이름의 고유성을 확인하려고 하면 불일치가 발생할 수 있습니다. 원격 메소드는 지정된 사용자 이름이 이미 존재하는지 확인하려고 시도할 때 실제 상태에 관계없이 존재한다고 일관되게 보고할 수 있습니다.
제공된 코드를 검사하면 다음과 같습니다. 문제는 데이터베이스 확인을 담당하는 PHP 스크립트에서 비롯된 것으로 보입니다. 수정된 PHP 스크립트에 대한 분석은 다음과 같습니다.
require_once "./source/includes/data.php"; header('Content-type: application/json'); $username = mysql_real_escape_string($_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;
수정 버전은 주로 결함이 있는 SQL 쿼리를 해결하는 데 중점을 둡니다. 초기 스크립트에 사용된 원래 쿼리는 안전하게 이스케이프되지 않은 사용자 이름을 확인하려고 시도했기 때문에 주입 공격에 취약했습니다. 수정된 스크립트는 mysql_real_escape_string을 활용하여 데이터베이스를 쿼리하기 전에 사용자 이름을 적절하게 이스케이프 처리합니다.
또한 개선된 쿼리 구조는 mysql_num_rows를 사용하여 SQL 쿼리 결과를 계산하므로 사용자 이름이 데이터베이스에 이미 존재하는지 여부를 정확하게 확인할 수 있습니다. 데이터 베이스. 결과가 0이면 사용자 이름이 고유한 것으로 간주되고 $valid 변수가 true로 설정됩니다. 그렇지 않은 경우에는 false로 설정됩니다.
이 수정된 PHP 스크립트를 사용하면 jQuery 유효성 검사의 원격 방법이 사용자 이름이 데이터베이스에 이미 존재하는지 여부를 정확하게 판단하여 사용자 등록 시 고유한 사용자 이름이 적용되도록 할 수 있습니다.
위 내용은 내 jQuery 유효성 검사 원격 메서드가 고유한 사용자 이름을 감지하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!