我需要能夠允許用戶通過輸入自己的電子郵件,然後將更新數據庫重置其密碼,併發送電子郵件給用戶提供更新的密碼更新密碼。他們也將被重定向到一個頁面,允許他們更新密碼到其他的東西,但我一直無法獲得數據庫來更新密碼? 請幫忙!需要讓用戶使用電子郵件的PHP
這是我的代碼
<?php
$pwd_rand = rand();
$pwd_reset = $pwd_rand;
$email_password = $pwd_reset;
$new_password = sha1($email_password);
if (isset($_POST['useremail'])){
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->IsSMTP();
$mail->setFrom('[email protected]', 'A Smith');
$to = $_POST['useremail'];
$mail->addAddress($to, 'Somebody');
$mail->Subject = 'PHPMailer mail() test';
$mail->msgHTML($new_password." This is your new password.");
if (isset($_POST['submit'])){
$db_server = "127.0.0.1";
$db_usr = "";
$db_pwd = "";
$db = $db_usr;
$conn = mysqli_connect($db_server, $db_usr, $db_pwd, $db);
$q = "SELECT * FROM login WHERE email = '$to'";
$row = mysqli_fetch_assoc($queryget);
$r = mysqli_query($conn, $q);
$querychange = mysqli_query($conn, "UPDATE login SET password='$newpassword' WHERE email='$to'");
mysqli_close($conn);
}
if (!empty($_POST[$useremail])){
mail($to, "From: ");
} else {
echo "<div class=\"msg\">Please supply your email address.</div>";
}
} else {
echo "<div class=\"msg\">Please supply your email address.</div>";
}
}
{
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
echo "<div class=\"msg\">Password has been reset, check your email.</div>";
echo "<script>setTimeout(\"location.href = 'changepassword.php';\",1500);</script>";
}}
?>
這就是我跟在這一刻^ 我的代碼將發送新密碼的電子郵件,並重定向到更新密碼的頁面,但它沒有工作,用新密碼更新數據庫?
請再具體些 - 會發生什麼,當你做了MYSQL調用來更新用戶的密碼? – aphextwix 2014-12-06 14:44:13
在這個時候,頁面不加載,並且即時通訊猜測是否有更新數據庫的代碼出現錯誤:/ – Natt 2014-12-06 14:47:56
是的,如果頁面沒有加載,通常情況下會提示一個問題!哈哈。你可以請張貼PHP或MYSQL錯誤訊息?爲了得到這個添加'<?php error_reporting(E_ALL); ?>'到你的頁面頂部,然後在你的mysqli_query的末尾添加一個'die'聲明 - 參見[link](http://stackoverflow.com/questions/17053466/how-to-display-errors-for-我的mysqli查詢) – aphextwix 2014-12-06 14:52:18