【发布时间】:2025-11-21 19:20:03
【问题描述】:
我正在创建一个网页,用户可以在其中创建帖子。其他用户可以通过填写向帖子创建者发送电子邮件的表单来回复帖子。 我使用 while 循环进行迭代以显示来自 MySQL 数据库的所有帖子,同时显示用于回复的表单。
我遇到的问题是,当我按下回复表单上的发送按钮时,数据库中的所有用户都会收到一封电子邮件。它应该工作的方式是,我要回复的人应该收到电子邮件。尝试了其他迭代器。考虑使用对象但就是不明白为什么当我按下发送按钮时 mail() 函数会向所有用户发送电子邮件。
$query = mysql_query("SELECT * FROM msg ORDER by id DESC");
while ($row = mysql_fetch_array($query)){
print '<div class="block">
<div id="uMail">
<a id="mail" href="'.$row['userMail'].'"> <img src="mail.png" > </a>
</div>
<div id="uName">
<span id="var">'.$row['userName'].'</span>
</div>
<div id="uMsg">
<p>'.$row['userMsg'].'</p>
</div>
</div>
<div class="popup">
<form action="" method="POST">
<div id="sName">
<input type="text" name="sName" />
</div>
<div id="sMail">
<input type="email" name="sMail" />
</div>
<textarea name="sMsg"></textarea>
<input type="submit" name="send" value="Send" />
</form>
</div>
';
if (isset($_POST["send"])) {
$usrMail = $row['userMail'];
$sndrName = mysql_real_escape_string($_POST["sName"]);
$sndrMail = mysql_real_escape_string($_POST['sMail']);
$sndrMsg = mysql_real_escape_string($_POST["sMsg"]);
mail($usrMail, "Hey", $sndrMsg);
header('location: forma.php');
}
}
【问题讨论】:
-
你的意思是要发送邮件到特定的ID?来自数据库
-
嘿,Mantas Pi 你在吗
-
是的,发给帖子作者的电子邮件,而不是其他人
标签: php mysql email while-loop