嘗試使用 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中文網其他相關文章!