我想用core php在用户表中保存的凭据登录,我的密码以加密形式保存在数据库用户表中的MD5中,我想用电子邮件和密码登录,但当我加密了密码,而登录密码与数据库表密码不匹配时,请帮我,我如何使用加密的md5密码登录。这是我的密码。
index.html
<form action="login_admin.php" method="POST">
<div class="form-group">
<label class="label">Username</label>
<div class="input-group">
<input type="email" class="form-control" placeholder="email" name="email">
<div class="input-group-append">
<span class="input-group-text">
<i class="mdi mdi-check-circle-outline"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="label">Password</label>
<div class="input-group">
<input type="password" class="form-control" placeholder="*********" name="pwd">
<div class="input-group-append">
<span class="input-group-text">
<i class="mdi mdi-check-circle-outline"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<input type="submit" name="submit" value="submit" class="btn btn-primary submit-btn btn-block">
</form>
login_admin.php
<?php
include('connection.php');
if(isset($_POST['submit'])){
$email = $_POST['email'];
$password = $_POST['pwd'];
$password = md5($_POST['pwd']);
$_SESSION['email'] = $email;
$_SESSION['password'] = $password;
$admin= $_SESSION['email'];
$query = "SELECT * FROM `user` Where (email = '$email' && role_id = 'admin' )";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
if($row > 0){
if($admin == $row['email'] && $password == $row['password']){
echo "test"; die;
}
}
else{
echo "Login Failed";
}
?>
connection.php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "example_user";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
如何取消清除密码
先阅读我的评论。
哈希
password_hash ( string $password , mixed $algo , array $options = ? ) : string|false
用法:
<?php echo password_hash('Hello world', PASSWORD_BCRYPT ) ?>
值:$password=";密码";;;$algo=";密码算法";;
有关更多信息:https://www.php.net/manual/en/password.constants.php
将密码与哈希版本进行比较##
password_verify ( string $password , string $hash ) : bool
用法:
<?php $text = "I am a php master!"; $hashed = password_hash($text, PASSWORD_BYCRIPT); echo $text . "<br>". $hashed . "<br>";
// password_verify returns a Boolean
if(password_Verify($text, $hashed)) echo "Correct";
?>
值:
密码
The user's password.
散列
A hash created by password_hash().
有关更多信息:https://www.php.net/manual/en/function.password-verify.php