php
  • sql
  • mysql
  • 2011-01-19 17 views 0 likes 
    0

    ユーザー名がグループの一部であることを確認して情報を取得するログインスクリプトを作成しようとしています。言い換えれば、私は情報を確認するために2つの "ands"を使用しています。私はこれを正しくしていますか?2つの制約を使用してPHPMYADMINを照会する

    PHP: 
    
    $check = mysql_query("SELECT username ,password FROM customers WHERE username =      '".$_POST['user_name']."' and group_name='".$group_name."'")or die(mysql_error()); 
    
    +1

    これを使用する前に、mysql_real_escape_stringなどを使用してください。それ以外の場合は正しく表示されます。 –

    +1

    Hmm。あなたは、とりわけSQLインジェクション攻撃を読みたいかもしれません。 –

    答えて

    1

    ブランドンホーズリーマット・ギブソンは既にコメントとしてそれを言及 - SQL injectionについて考えます。次の事は、私が強くdie(mysql_error())を使用することをお勧めしませんです。そうしないと、経験豊富なユーザーが「何かを読む」ことができるかもしれません。
    最も簡単な方法は、mysql_real_escape_string()(http://de.php.net/mysql_real_escape_string)を使用することです。そのようにコードを適合させることができます(私は$group_nameもユーザが操作できる値であると仮定しています):

    <?php 
    // ... 
    $check = mysql_query("SELECT username, password FROM customers WHERE username = '". mysql_real_escape_string($_POST['user_name']) ."' and group_name = '". mysql_real_escape_string($group_name) ."'") or die('error); 
    // ... 
    ?> 
    
    関連する問題