我使用 php/Mysql 创建了一个简单的登录表单,并且使用 md5 来存储密码
输入 1 作为注册和登录密码
在注册表中
<?php
require('connect.php');
// If the values are posted, insert them into the database.
if (isset($_POST['username']) && isset($_POST['pass'])){
$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['email']);
$pass = mysql_real_escape_string(md5($_POST['pass']));
echo $_POST['pass'];
echo $pass;
$query = "INSERT INTO `user` (username, pass, email) VALUES ('$username', '$pass', '$email')";
$result = mysql_query($query) or die (mysql_error());
if($result){
$msg = "User Created Successfully.";
echo $msg;
}
}
?>
c4ca4238a0b923820dcc509a6f75849b
而在登录表单中输入相同的密码
<?php
require('connect.php');
function SignIn()
{
echo "Session Started";
session_start(); //starting the session for user profile page
$myuser = mysql_real_escape_string(strip_tags($_POST['username']));
$mypass = mysql_real_escape_string(md5($_POST['pass']));
echo "<br/>";
echo $myuser;
echo "<br/>";
echo $mypass;
$query = mysql_query("SELECT * FROM user WHERE username='$myuser'") or die(mysql_error());
echo $query;
echo "<br/>";
echo "After query";
echo "<br/>";
// If result matched $myusername and $mypassword, table row must be 1 row
$row = mysql_fetch_array($query, MYSQL_BOTH) or die(mysql_error());
echo $row[0];
echo "<br/>";
echo $row[1];
echo "<br/>";
echo $row[2];
echo "<br/>";
echo "After fetching arrays";
echo "<br/>";
$count = mysql_num_rows($query);
echo $count;
/* if($count == 1)
{
$_SESSION['login_user']=$myuser;
header("location: welcome.php");
echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE...";
}
else
{
echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...";
}*/
}
if(isset($_POST['submit']))
{
SignIn();
}
?>
但是生成的md5有所不同
da39a3ee5e6b4b0d3255bfef95601890afd8070
解决我的问题的方法
直接打印$_POST['pass']
不要使用 md5 进行密码相关。
附注现在我的代码可以运行了,谢谢大家。
最佳答案
这是不可能的,尝试一下
echo $_POST['pass'];
在md5之前检查值是否相同,也许你得到了错误的字符串
关于php - php md5 中的简单登录表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075358/