問題は解決しました。投稿して助けてくれたすべての人に感謝します。列の型が短すぎました (varchar(25)) - 拡張してログインできました。皆様のコメント、有り難う御座いました。
作成したテスト アカウントを使用してログインしようとすると、いくつかの問題が発生します。独自のCMSを作ろうとしています。現在、登録ページが完成し、ログインページで作業しています。登録時にユーザーのパスワードを MD5 しました。このアカウントを使用してログインしようとすると、ログイン ページで生成されたハッシュは、SQL データベースに保存されているハッシュと決して一致しません。
これが私のPHPコードとMySQLクエリです:
$username = mysql_real_escape_string($_REQUEST['username']);
$password = mysql_real_escape_string($_REQUEST['password']);
$query = mysql_query("SELECT username FROM records WHERE username='".$username."'") or die(mysql_error());
$result= mysql_fetch_array( $query );
if($result[0] == $username) {
$query = mysql_query("SELECT password FROM records WHERE username='".$username."'") or die(mysql_error());
$result = mysql_fetch_array( $query );
$passHash = md5($password);
echo "Hash: ".$passHash."<br/>";
echo "User's hash: ".$result[0];
if($result[0] == $passHash) {
echo "XXXXX: WIN";
}
else {
echo "fail";
}
「alex」というアカウントがあります。登録ページで生成された MD5 は「1c13465e24d91aca4d3ddaa1b」です。ログイン ページで生成された MD5 ハッシュは「1c13465e24d91aca4d3ddaa1bc3e7027」です。
ここに私の登録ページのコードがあります:
$username = mysql_real_escape_string($_REQUEST['username']);
$password = mysql_real_escape_string($_REQUEST['password']);
$md5_pass = md5($password);
mysql_real_escape_string(mysql_query("INSERT INTO records (username, password, ) VALUES('$username', '$md5_pass' ) ") or die(mysql_error()));
私は何を間違っていますか?私はここで検索していて、見ました:
しかし運がない。どんな助けでも大歓迎です!