我正在用PHP和Mysql编写一个登录表单。
我做了所有事情只是忘记密码无效。
它向我发送电子邮件确认,但不会更新数据库中的密码。
首先是忘记页面,然后发送电子邮件并将我重定向到confirm_pass.html
页面,其中是两个密码的表单,并在此页面上执行confirm_pass.php
所做的一切,除了更新数据库中的密码。
请帮忙。
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Make sure the two passwords match
if ( $_POST['newpassword'] == $_POST['confirmpass'] ) {
$new_password = password_hash($_POST['newpassword'], PASSWORD_BCRYPT);
$email = $mysqli->escape_string($_POST['email']);
$confirm_code = md5(rand().$password);
$result = "UPDATE `mv_db`.`users` SET `password`='$new_password', `confirm`='$confirm_code' WHERE `email`='$email'";
if ( $mysqli->query($result) ) {
header("location: login.html");
}
}
else {
$_SESSION['message'] = " The two passwords you entered don't match, try again!";
header("location: error.php");
}
}
?>
答案 0 :(得分:2)
您的$_POST['email']
未定义,因为没有&#34;电子邮件&#34; HTML表单中的字段。
因此,数据库中没有更新任何内容,因为没有匹配的记录。