0

これは簡単なはずですが、うまくいきません。アイデアは、フォームから投稿された電子メール アドレスを探すことです。存在する場合は何かをエコーし​​、そうでない場合は他の何かをエコーし​​ます。

私のコードは次のとおりです。

<?php
//MySQL Database Connect
mysql_connect("localhost", "********", "**********") 
  or die("Unable to connect to MySQL");

//get data from form 
$email=$_POST['email'];

//ask the database for coincidences
 $result = mysql_query("SELECT email FROM pressmails WHERE email='.$email.'"); 
 $num_rows = mysql_num_rows($result); 


 if($num_rows < 0){ 
    echo "The user is registered";
} else { 
    echo "The user is not registered";
}  

 //Close database connection
 mysql_close();
 ?>
4

4 に答える 4

3

文字列を正しく連結していません。

$result = mysql_query("SELECT email FROM pressmails WHERE email='.$email.'");

する必要があります

$result = mysql_query("SELECT email FROM pressmails WHERE email='".$email."'"); 
于 2013-01-22T12:34:08.020 に答える
1

終了引用符を使用して文字列を終了する必要があります(文字列をで開始した場合は、文字"列もで終了する必要があります。"これも同様です')。

また、を使用することを忘れないでくださいmysql_real_escape_string。そうしないと、スクリプトが安全ではありません。

スクリプトは次のようになります。

// save the query in a variable, so we can echo it to debug when it doesn't work as expected
$sql = "SELECT email FROM pressmails WHERE email='".mysql_real_escape_string($email)."'";
$result = mysql_query($sql);
于 2013-01-22T12:34:34.490 に答える
1

"リテラルをラップすると、変数が自動的に文字列に解析されるため、連結識別子は必要ありません。

$result = mysql_query("SELECT email FROM pressmails WHERE email='$email'"); 

気をつけてください、気をつけてください。上記を行うことは、重大な SQL インジェクションの脆弱性を表しています。$email最低限の除菌は考えたほうがいいです。mysql_*PHPの関数に関する私のコメントも参照してください。

ドキュメントから:

この拡張モジュールは PHP 5.5.0 で非推奨になり、将来的に削除される予定です。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。詳細については、MySQL: API ガイドの選択および関連する FAQ も参照してください。この機能の代替手段は次のとおりです。

mysqli_close() PDO: NULL の値を PDO オブジェクトに割り当てます

于 2013-01-22T12:35:30.273 に答える
0

(assuming you get your syntax errors corrected) isn't the logic of this backwards?

if($num_rows < 0){ 
 echo "The user is registered";
} else { 
echo "The user is not registered";
}  

if the user is registered their email is in the database and the query returns one or more rows

try

if($num_rows){ 
   echo "The user is registered";
} else { 
  echo "The user is not registered";
}  
于 2013-01-22T12:37:20.193 に答える