我已经设置了电子邮件功能并通过设置代码来通过电子邮件发送特定的电子邮件地址。但是,根据在邮件来自的文本框中输入的数据,每次按下提交按钮时,它都会转到相同的电子邮件地址。
但是,我想更改它,以便当用户在用户名框中输入用户名时,它会检查我的数据库表中的用户名并检查他们的电子邮件地址,并通过电子邮件向他们发送为该用户设置的所有信息。
我正在使用的代码是;
$username = $_POST['username'];
$my_query="SELECT * from loanusers where username = '$username'";
$result= mysqli_query($connection, $my_query);
$to = $myrow["emailaddess"];
$subject = 'CSG - Forgotten Password';
$sender = 'CSGLoanSystem@mail.com';
$password = $myrow["password"];
$admin = 'CSGLoanSystem Admin Team';
$body = <<< EMAIL
Hi {$username}, You have recently requested a notification of your password.
The Password registered with account {$username} is $password.
Thanks - {$admin}
EMAIL;
$header = "From:" . $sender;
if ($result):
mail($to, $subject, $body, $header);
$feedback = 'Email Sent';
endif;
在按下提交按钮的那一刻,页面刷新但实际上没有发生任何事情并且没有收到预期电子邮件地址的电子邮件?
答案 0 :(得分:0)
指向正确的方向:
阅读MySQL和PDO。另请阅读准备好的语句和参数绑定。
阐述指示:
有许多方法可以连接到数据库,并且有许多不同的数据库可用。一种流行的数据库软件称为MySQL,最常建议连接到该数据库的编码方法是PDO,原因包括有更好的方法来防止安全漏洞。
你可以找到很多关于如何连接到数据库的在线教程,所以我不打算进入,但是我会给你一个你可以用来进行电子邮件搜索的查询示例,而且我还会包含准备好的语句和参数绑定,因为这两个细节经常被很多程序员误解。
如果您有下表:
users
______________________________
| username | email |
|------------+-----------------|
| john44 | abc@gmail.com |
|------------+-----------------|
| adam11 | 123@gmail.com |
|------------+-----------------|
以下代码可让您检索john44
的电子邮件:
$username = $_POST['username'];//getting the username written in the form
$sql = "SELECT email FROM users WHERE username = ?";
$stmt = $conn->prepare($sql);
$stmt->execute([$username]);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
//here I'm just outputting the obtained email for you to see
//it works, however you would then use the email saved in
//$result['email'] whichever way you want.
echo "email = {$result['email']}<br>";
<强>编辑:强>
编辑代码后,我注意到您没有获取您查询的信息。在第$result= mysqli_query($connection, $my_query);
行后插入以下代码:
$myrow = mysqli_fetch_assoc($result);