问题已解决。感谢所有发帖并帮助我的人。列类型很短 (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()));
我究竟做错了什么?我一直在这里搜索并查看:
但没有运气。任何帮助是极大的赞赏!