登録時に MD5 暗号化を使用してパスワードを mysql に保存しました。ログイン時に md5() を使用して値を比較したため、比較が失敗しました。
と答えてください。
階下にコードを投稿します
これは判定される関数モジュールです:
function pd(){//パスワードが正しいかどうかを確認します
$id=$_POST['id'];
$pwd=trim(md5) ($_POST['pwd' ]));
echo "$pwd"."";
$sql=mysql_query("SELECT * FROM `xx` WHERE `id`='$ id'AND`password`= '$pwd'");
$sql_p=mysql_num_rows($sql);
echo "$sql_p";
if($sql_p==0){
echo "<script> アラート ('パスワードが間違っています');window.location.herf='index.php';</script>"
}
else
{echo "< ;script>alert('パスワードは正しいです ');";}
}
データベース内の md5 値;
root2
e10adc3949ba59abbe56e057f20f88;
値Web ページに表示されます。
e10adc3949ba59abbe56e057f2 0f883e
$pwd=md5(trim($_POST['pwd']));//如果还是不行,重新生成一个md5的值,放到数据库再试下,看看是不是插入的时候错了
echo md5('root2');mysql_connect();$rs = mysql_query("select md5('root2')");print_r(mysql_fetch_row($rs));
9b70d6dbfb1457d05e4e2c2fbb42d7dbArray( [0] => 9b70d6dbfb1457d05e4e2c2fbb42d7db)
ウェブページには e10adc3949ba59abbe56e057f20f883e が表示されます
いいえ、事故が起きた場合は 123456 になります。言っておきますが、root2 の方が優れています。触ることもできません。
PS もう 1 つ言わせてください。データベースの表示が不完全です。基本的には、パスワードフィールドに設定されている桁数が不当であることが原因です。少なくとも char(32)
1.desc xx を見てください。テーブル構造では、パスワード フィールドの長さは 32 ビットである必要があります。
echo md5('root2'); //9b70d6dbfb1457d05e4e2c2fbb42d7db