我制作了一个不发送任何电子邮件的小代码。它给了我一个空白页面。有什么建议吗?
<?php
$result_array1 = array();
$result_array2 = array();
$result_array3 = array();
$result_array4 = array();
$sql1 = "SELECT * FROM `test_thing`";
$result1 = mysql_query("$sql1") or die($sql1.mysql_error());
while($row1 = mysql_fetch_array($result1))
{
$result_array1[] = $row1['email'];
$result_array2[] = $subject;
$result_array3[] = $message;
$result_array4[] = $header;
}
$sentmail = mail($result_array1,$result_array2,$result_array3,$result_array4);
?>
答案 0 :(得分:7)
It gives me a blank page.
实际上它应该。您不在您显示的代码中使用输出函数。如果您预计会出现错误消息,请确保您已启用display_errors
并error_reporting
至E_ALL
答案 1 :(得分:4)
Mail将字符串作为参数,而不是数组。您需要在每个数组上为其索引执行for循环和调用邮件。
答案 2 :(得分:1)
while($row1 = mysql_fetch_array($result1))
{
$result_array1[] = $row1['email'];
$result_array2[] = $subject;
$result_array3[] = $message;
$result_array4[] = $header;
}
我希望你的意思是:
while($row1 = mysql_fetch_array($result1))
{
$result_array1 = $row1['email'];
$result_array2 = $subject;
$result_array3 = $message;
$result_array4 = $header;
}
mail()
期待字符串。除非你想循环并发送多个邮件,否则你需要重新设计一下代码。
答案 3 :(得分:1)
如果这是您的完整代码,则表示您的数据库未正确初始化。阅读mysql_connect()上的文档以获取更多信息和示例。
另外,尝试回显一些调试数据,看看你实际上是从数据库中获取了一些数据。
答案 4 :(得分:0)
为什么不
<?php
$result_array1 = array();
$result_array2 = array();
$result_array3 = array();
$result_array4 = array();
$sql1 = "SELECT * FROM `test_thing`";
$result1 = mysql_query("$sql1") or die($sql1.mysql_error());
while($row1 = mysql_fetch_array($result1))
{
$sentmail = mail($row1['email'],$subject,$message,$header);
}
?>
答案 5 :(得分:0)
我认为你不止一个问题。 首先,您必须连接到数据库。如答案1,请阅读php手册中的mysql界面,特别是函数mysql_connect。 其次,事实上是错误的。 虽然(x = any_function)不将any_function结果归因于变量&#39; x&#39;。 &#39; x = any_function&#39;返回一个布尔值,没有别的。 你可以这样写: while((x = any_function()))或在您的情况下: while(($ row1 = mysql_fetch_array($ result1))) 其中&#39; $ row1 = mysql_fetch_array($ result1)&#39;属性为mysql_fecth_array和。返回的$ rows1值 &#39;($ row1 = mysql_fetch_array($ result1))&#39;返回一个布尔值来控制while结构。 我希望我能帮到你。