2012-09-29 20 views
1

我正在構建一個使用JQuery的驗證器插件來驗證表單的註冊頁面。對於用戶名,我使用了remote方法。因此,這裏是我的jQuery + HTML代碼:fiddlePHP PDO用戶名可用性檢查器

而這裏的Available.php:

<?php 
    $usr = $_POST['username']; 
    $link = new PDO('mysql:host=***;dbname=***;charset=UTF-8','***','***'); 
    $usr_check = $link->prepare("SELECT * FROM Conference WHERE Username = :usr"); 
    $usr_check->bindParam(':usr', $usr); 
    $usr_check->execute(); 
    if($usr_check->rowCount()>0) 
     echo false; 
    else 
     echo true; 
?> 

所以我有一個測試帳號在我的數據庫的用戶名:用戶。當我試圖用相同的用戶名提交我的表單時,它沒有顯示錯誤,說「用戶名採取」,這意味着PHP是不正確的。任何想法,我出錯了?謝謝

編輯:隨着鉻檢查員打開網站。當輸入用戶名時,它會嘗試獲取Available.php,但它會顯示「500內部服務器錯誤」。這裏是什麼樣子: 500 Error

+0

它顯示任何東西或你有JS錯誤? –

+0

@LukaszKujawa沒有那樣的事。所以我的PHP是正確的呢? –

+0

我認爲php是正確的。我有一個問題,用戶名的大小寫敏感 – JvdBerg

回答

3

好吧,跟你聊了一段時間後,這裏就是我們的發現:

1- $ _ POST應該是$ _GET,因爲您使用的是遠程方法從jQuery的.validate。

2-您的代碼在$ link上調用bindParam()而不是$ usr_check,這在您的問題中是正確的。

另一件事,你的代碼也需要打印出真假的字符串。用引號包起來。