3

name 属性usernameを持つテキストボックスと name 属性passwordを持つ別のテキストボックスを持つフォームがあります。userpassという列を持つデータベースもあります。ユーザーがサインアップすると、ユーザー名がユーザー列に、パスワードがパス列に追加されました。

フォームが正しいユーザー名とパスワードを送信したかどうかを確認し、成功した場合にコードを入力できるブランチがあるかどうかを確認する MySQL クエリを作成するにはどうすればよいですか?

私は本当にいくつかのコードが必要です.このビットはうまくいきません.私はそれが何かのようなものであるべきだと知っていSELECT * FROM table WHERE username == $username AND...ます. 助けてください。:)

ありがとう

4

3 に答える 3

10
//set vars
$user = $_POST['user'];
$pass = md5($_POST['pass']);

if ($user&&$pass) 
{
//connect to db
$connect = mysql_connect("$server","$username","$password") or die("not connecting");
mysql_select_db("users") or die("no db :'(");
$query = mysql_query("SELECT * FROM $tablename WHERE username='$user'");

$numrows = mysql_num_rows($query);


if ($numrows!=0)
{
//while loop
  while ($row = mysql_fetch_assoc($query))
  {
    $dbusername = $row['username'];
    $dbpassword = $row['password'];
  }
  else
      die("incorrect username/password!");
}
else
  echo "user does not exist!";
} 
else
    die("please enter a username and password!");
于 2011-12-30T21:37:50.887 に答える
9

count count(*)ですべての列を選択する代わりに、1 つの列count(UserName)のカウントを制限できます。

Limit 0,1 を使用して、検索全体を 1 行に制限できます。

SELECT COUNT(UserName)
  FROM TableName
 WHERE UserName = 'User' AND
       Password = 'Pass'
 LIMIT 0, 1
于 2013-02-19T11:21:18.607 に答える
8

1.) データベース パスワードの保存 ソルトを含むある種のハッシュを使用してから、ハッシュを変更し、難読化します。たとえば、各バイトに個別の値を追加します。そうすれば、パスワードは辞書攻撃やレインボー テーブルに対して非常に安全になります。

2.) パスワードが一致するかどうかを確認するには、ユーザーが入力したパスワードのハッシュを作成します。次に、データベースに対してユーザー名のクエリを実行し、2 つのパスワード ハッシュが同一かどうかを確認します。そうである場合は、ユーザーに認証トークンを与えます。

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

select hashedPassword from users where username=?

次に、パスワードを入力と比較します。

さらに質問がありますか?

于 2011-03-12T21:07:24.100 に答える