ノート機能していません。PHPデータベースと比較すると、ハッシュが
- を私はまだこのログインフォーム
- をPHPにかなり新しいよ、私はパスワードをハッシュしていない場合は完全に正常に動作するようです。
- 私はmd5、sha256を試しましたが、今はsha1に残しました。これらの作品はありません。
- 私は最初に
echo sha1("password");
を使って自分のパスワードのハッシュを調べ、そのハッシュをコピーしてphpMyAdminで手作業で貼り付けました。これが問題なのかどうかは分かりません。<?php session_start(); require("config.php"); if(isset($_POST['submit'])) { $username = mysql_real_escape_string($_POST['username']); $password = sha1(mysql_real_escape_string($_POST['password'])); $loginsql = "SELECT * FROM login WHERE username = '" . $username . "' AND password = '" . $password . "'"; $loginresult = mysql_query($loginsql); $loginnumrows = mysql_num_rows($loginresult); if($loginnumrows == 1) { $loginrow = mysql_fetch_assoc($loginresult); session_register("USERNAME"); session_register("USERID"); $_SESSION['USERNAME'] = $loginrow['username']; $_SESSION['USERID'] = $loginrow['id']; header("Location: " . $config_basedir . "controlpanel.php"); } else{ echo "<p>Incorrect Login, please try again!</p>"; } } else{ } ?>
私は本当にこれで行くにはどこすぎてよく分からない:
はとにかく、ここのコードです。私のコードはより効率的かもしれないと確信していますが、私がノートで言及したように、私はパスワードをハッシュしないと動作します。読んでくれてありがとう。
どのようにデータベース内の 'password'セットアップはありますか? –
データがデータベースに送られる直前まで、 'mysql_real_escape_string'を使うべきではありません。特に、sha1($ _ POST ['password'])); 'はmysql_real_escape_string(sha1($ _ POST ['password'])))'でなければなりません。 *保存された*パスワードがどのようにハッシュされているかもわかりませんので、本当にお手伝いできません。レコードを選択し、パスワードを 'var_dump 'してみてください。これをサーバーにポストされている値と比較してください。これらは基本的なデバッグ手順です。 – meagar
'$ password = sha1($ _ POST ['password']);'を試しましたか?ここにmysql_real_escape_stringは必要ありません。 – aletzo