1

JQuery のバリデータ プラグインを使用してフォームを検証する登録ページを作成しています。ユーザー名には、リモート方式を使用しました。だからここに私のjquery + htmlコードがあります:フィドル

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

したがって、データベースにユーザー名 user のテスト アカウントがあります。同じユーザー名でフォームを送信しようとしたときに、「ユーザー名が取得されました」というエラーが表示されませんでした。これは、php が正しくないことを意味します。私が間違っていたアイデアはありますか?ありがとう

編集:クロムのインスペクタを開いた状態でウェブサイトを実行しました。ユーザー名を入力すると、Available.php を取得しようとしますが、「500 内部サーバー エラー」と表示されます。外観は次のとおりです。 500 エラー

4

1 に答える 1

3

わかりました。しばらくおしゃべりした後、次のことがわかりました。

1- jQuery.validate からのリモート メソッドを使用しているため、$_POST は $_GET である必要があります。

2- あなたのコードは $usr_check の代わりに $link で bindParam() を呼び出していました。これはあなたの質問では正しいです。

もう 1 つのこととして、コードは true と false の文字列も出力する必要があります。それらを引用符で囲みます。

于 2012-09-29T23:46:06.580 に答える