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))
{
   $result_array1[] = $row1['email'];
   $result_array2[] = $subject;
   $result_array3[] = $message;
   $result_array4[] = $header;
}
$sentmail = mail($result_array1,$result_array2,$result_array3,$result_array4);
?>
4

6 回答 6

7
It gives me a blank page.

其实应该的。您没有在显示的代码中使用输出函数。如果您预期错误消息,请确保您已display_errors启用error_reportingE_ALL

于 2012-05-05T19:54:04.967 回答
4

Mail 将字符串作为参数,而不是数组。您需要执行一个 for 循环并在每个数组上调用 mail 以获取其索引。

于 2012-05-05T19:54:22.703 回答
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()需要字符串。除非您打算循环并发送多封邮件,否则您需要重新设计代码。

于 2012-05-05T19:54:39.490 回答
1

如果这是您的完整代码,则说明您的数据库未正确初始化。阅读有关mysql_connect()的文档以获取更多信息和示例。

此外,尝试回显一些调试数据,以查看您实际上是从数据库中获取一些数据。

于 2012-05-05T19:55:09.973 回答
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);
  }
?>
于 2012-05-05T19:56:17.447 回答
0

我认为你的问题不止一个。首先,您必须连接到数据库。如答案 1,阅读 mysql 接口的 php 手册,特别是函数 mysql_connect。其次,while 实际上是错误的。而 (x = any_function) 不会将 any_function 结果归因于变量“x”。'x = any_function' 返回一个布尔值,仅此而已。你应该写这样的东西:while ((x = any_function())) 或者在你的情况下:while(($row1 = mysql_fetch_array($result1))) where '$row1 = mysql_fetch_array($result1)' attributes to $rows1 values由 mysql_fecth_array 返回,并且 '($row1 = mysql_fetch_array($result1))' 返回一个布尔值来控制 while 构造。我希望我对你有所帮助。

于 2012-05-05T21:05:23.623 回答