2016-10-25 12 views
0

私はちょうどプログラミングの勉強を始めました。私はこの問題で何時間も立ち往生してきました。私は電子メールを要求するフォームにサインアップしており、電子メールがすでに登録されている場合はmysqlデータベースをチェックする必要があります。私は現在、Jqueryバリデータープラグインからリモートメソッドを使用しようとしていますが、動作させることができません。JQuery重複電子メールの妥当性確認

emailcheck.php

<?php 
include_once 'dbconnect.php'; 
$email = $_POST['CusEadd']; 
$query = "SELECT CusEadd FROM customer WHERE CusEadd='$email'"; 
$result = mysql_query($query); 
$count = mysql_num_rows($result); 

if($count>0){ 
    echo json_encode(FALSE); 
} 
else { 
    echo json_encode(TRUE); 
} 

?> 

フォームvalidation.js

CusEadd: { 
      required:true, 
      email:true, 
      remote:"emailcheck.php" 
     } 
+0

変数POSTに'OR 1=1のようなものを渡すことによって、SQL攻撃に開いている、私はそれを作ると信じてGET要求がデフォルトであれば、あなたが望むならPOSTを指定しなければならない – adeneo

+1

特にプログラミングを学び始めたばかりの方は、PHPのmysql_ *関数を使わないでください**。 PHP 5.5では廃止されました。これは古いものであり、セキュリティアップデートを受け取らなくなり、PHP 7で完全に削除されました。代わりに、PDOまたはmysqli_ *を使用してください。 – Chris

+1

うん。私は間違いなくmysqlの使用をやめ、PDOの使い方を学びます。みんなありがとう! – aeonxs11

答えて

1

jQueryの検証のためのdocumentation

サーバサイドリソースのjQueryを介して呼び出されることを述べて.ajax(XMLHttp Request)であり、 は、有効な 要素の名前とその値に対応するキーと値のペアを取得し、その値はGETパラメータとなります。

サーバー側の応答が 有効な要素のための「真」でなければなりませんJSON文字列でなければならない、とあなたが$_POST['CusEadd']のためにチェックしている 無効な要素

ため、「偽」未定義、またはnullにすることができます、そしてあなたがその名前を持つ要素を持っていると仮定すると、あなたはまだ方法

CusEadd: { 
    required:true, 
    email:true, 
    remote: { 
     url : "emailcheck.php", 
     type : "POST" 
    } 
} 

としてPOSTを指定する必要があります。また、あなたは通常、数値に変換した文字列「true」のではなく、PHPのブール値を返すようにしたい

if($count>0){ 
    echo json_encode("false"); 
} 
else { 
    echo json_encode("true"); 
} 

、生産コードでmysql_*を使用していない、あなたのコードは、単にあなたはjQueryのプラグインを検証し使用している場合

+0

ありがとうございます!どうもありがとうございました!あなたは本当の命の恩人です。また、mysqlを削除してmysqliを代わりに使用します。ありがとうございました!! – aeonxs11

関連する問題