我有一个HTML输入表单,用户可以在其中订阅简报。他们输入他们的名字,姓氏和电子邮件,然后将它们添加到我的sql数据库中的表中。
我创建了第二个html表单,其中“admin”可以在正文文本框中输入主题和消息,然后单击“发送”。
现在,当他们点击发送时应该发生的是,该主题/正文将被发送到sql数据库中的所有用户,但它无法正常工作!有什么帮助吗?代码如下:
<?php
$user = "example";
$password = "example";
$host = "example";
$dbase = "example";
$table = "example";
$from= 'example';//specify here the address that you want email to be sent from
$subject= $_POST['subject'];
$body= $_POST['body'];
// Connection to DBase
$dbc= mysqli_connect($host,$user,$password, $dbase)
or die("Unable to select database");
$query= "SELECT * FROM $table";
$result= mysqli_query ($dbc, $query)
or die ('Error querying database.');
while ($row = mysqli_fetch_array($result)) {
$firstname= $row['firstname'];
$lastname= $row['lastname'];
$email= $row['email'];
$msg= "Dear $firstname $lastname,\n$body";
mail($to, $subject, $msg, 'From:' . $from);
echo 'Email sent to: ' . $email. '<br>';
}
mysqli_close($dbc);
?>
我最后收到确认信息“发送到的电子邮件(它会显示电子邮件)”,但它实际上并没有发送,而且我在第28行收到“未定义的变量:”。
(我已将目的放在最顶层)
答案 0 :(得分:2)
在您的代码中
while ($row = mysqli_fetch_array($result)) {
$firstname= $row['firstname'];
$lastname= $row['lastname'];
$email= $row['email'];
$msg= "Dear $firstname $lastname,\n$body";
mail($to, $subject, $msg, 'From:' . $from);
echo 'Email sent to: ' . $email. '<br>';
}
您的电子邮件地址存储在$email
,但您正在向$to
发送电子邮件。你的邮件行应该是:
mail($email, $subject, $msg, 'From:' . $from);
此外,您应该相应地配置服务器以使mail()
正常工作。阅读更多http://ie1.php.net/manual/en/function.mail.php
答案 1 :(得分:1)
变化
mail($to, $subject, $msg, 'From:' . $from);
到
mail($email, $subject, $msg, 'From:' . $from);