2011-08-08 52 views
-1

ユーザがログインしたときに自分のデータベースの一致をチェックして、パスとユーザの両方がエントリと一致すると真を返す方法はわかりません。ユーザとパスワードがデータベースと一致するかどうかをチェック

ユーザー名とパスワードに対応する変数は、$user$hashです。そして、私がマッチしなければならないテーブルは、テーブルUsersとカラム:UserPasswordです。

クエリはどのようになりますか?おかげ

+2

Google for PHPのログインフォームには、これに関する情報が*たくさんあります。 – Vache

答えて

1

これはあなたが必要とするクエリです:

SELECT * FROM Users WHERE User = '$user' AND Password = '$hash' LIMIT 1; 

それは(あなたがmysql_num_rows()に確認することができます)、結果を返す場合、ログインが有効です。そうでない場合、無効です。データベースクエリで使用する前に$usermysql_real_escape_string()またはエスケープする別の関数でエスケープすることを忘れないでください。

3

は、クエリは、次のようになります。

SELECT * FROM Users WHERE User='$user' AND Password='$hash' LIMIT 1; 

を次にもしそうなら行== 1の数を確認した場合、有効なログインがあったようです。あなたがしようとしていることを覚えています:あなたはデータベース内の2つのものにマッチさせようとしています。 SQL "AND"は、両方の条件が真であることを確認します。

詳細についてはhttp://mysql.com/のAPIをチェックします。

+0

また、入力を保護することも考慮する必要があります.SQLインジェクションは、ログインスクリプトでは特に簡単です。 – diagonalbatman

+0

絶対に。私はあなたの入力を直接クエリに送る前に、 'sanitize'メソッドを書くことをお勧めします(正規表現などでこれを行うことができます)。 – RageD

+0

説明のように。それを私のものに加えようとしていたのですが、あなたはハハを投稿するのに1秒で私を倒しました。 – Kyle

1
SELECT * FROM Users where User='$user' AND Password='$hash' LIMIT 1 
関連する問題