1

ユーザー名とパスワードがデータベースに存在するかどうかを確認したいのですが、コードに問題があり、見つけることができませんでした。

$result=mysql_query("SELECT C_ID FROM customer WHERE C_NNAME ='".$_POST['username']."' AND C_PASS = '".$_POST['pass']."'");

if($result=='FALSE'){
    $word .= select_key('keyword', 'K_ID', 'password');
}
else 
{
    $word.= select_key('keyword', 'K_ID', 'Please Complete Feilds');    
}
4

3 に答える 3

2

SQL インジェクションの問題以外に、スーパーグローバル配列を$_POST間違って使用しています (名前を付けているため$post)。

正しいスーパーグローバル変数名を使用してみてください。SQL インジェクションには Google を使用してください。

于 2012-06-08T11:52:48.827 に答える
1
$name = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['pass']);
$result = mysql_query("SELECT C_ID FROM customer WHERE C_NNAME ='$name' AND C_PASS = '$password'");

if(mysql_num_rows($result) > 0) {
   // There's a match
} else {
   // There's no match
}

また、mysql_関数はmysqli_またはストアドプロシージャを使用しないでください。コードはSQLインジェクションに対して安全ではなく、公開Webサイトでこれを使用することはお勧めできません。

于 2012-06-08T11:58:05.050 に答える
0

mysql_num_rows結果があったかどうかを確認するためにを使用する必要があります。

于 2012-06-08T12:04:09.850 に答える