2012-04-23 10 views
0

私はJQuery検証プラグインを使用しています。リモートの関数がデフォルトのPHPファイルで動作しています。JQueryの検証リモートとデータベースのチェックPHP MySQLのエラー

私は私の独自のバージョンが、MySQLを使用するPHPファイルを修正私のPHPコードは次の通りである

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/fastbluf/syatch/module/1.func.php on line 15 

を返しています。私のすべての構文が正しいように見えます。

<?php 
// Last Edited: 4/23/12 
$conn = mysql_connect('localhost','hidden','hidden') or die('Iam dying'); 
$rs = @mysql_select_db("hidden", $conn) or die("Err:Db"); 

$do = $_REQUEST['do']; 
$email= $_REQUEST['email']; 
$user= $_REQUEST['user']; 

function checkInfo($do,$email,$user){ 
    switch ($do) { 
     case 1: 
      $sql = "select * from User_Base where Email_Address = $email"; 
      $results = mysql_query($sql). mysql_error(); 
      $nResults = mysql_num_rows($results); 
      if ($nResults > 0) { 
       $valid="false"; 
      } else { 
       $valid="true"; 
      } 
     break; 

     case 2: 
     //not yet 
     break;  
    } 
    return $valid; 
} 
echo checkInfo($do,$email,$user); 
?> 

答えて

2

にクエリを修正します。

$results = mysql_query($sql). mysql_error(); 

これは、このようなものにするために変更してみてください:

$results = mysql_query($sql) or die(mysql_error()); 

あなたのクエリは、電子メールアドレスを引用するように変更する必要があり、そのアドレスは攻撃(SQLインジェクション)を防止するためにエスケープする必要があります。

$email = mysql_real_escape_string($_REQUEST['email']); 
$sql = "select * from User_Base where Email_Address = '$email'"; 
+0

ありがとうございました。多く..実際のエスケープ文字列も追跡していませんでした..病気は今どこにでも実装する必要があります。 – Ray

+0

問題はありません。 – Developer

2

問題は、あなたはそれがもはや有効な結果であることを引き起こしていない、あなたの結果に追加しているということです

$sql = "select * from User_Base where Email_Address = '".$email."'";