1

我喜欢自己学习和做事,但我遇到了一个我不知道如何解决的问题。

我正在尝试为公告系统编写一个 php 群发邮件,我可以通过一个按钮在管理页面中激活它。

这是当前脚本的样子。

function sendStreamAnnounce(){
  global $database, $session, $mailer, $form;      
    $q = "SELECT username,email"
        ."FROM ".TBL_USERS."";
    $result = $database->query($q);
    $num_rows = mysql_numrows($result);

   for($i=0; $i<$num_rows; $i++){
    $email  = mysql_result($result,$i,"email");

     /* Attempt to send the email with new password */
     if($mailer->sendStreamAnnounce($email))
    $_SESSION['mailed'] = true;
          else{
    $_SESSION['forgotpass'] = false;

     }
      header("Location: ".$session->referrer);
    }
}

目前的设置让我有了这个

http://puu.sh/1gkgg.jpg

我以某种方式从我正在使用的教程式后端附带的“我忘记了密码”的 php 脚本中改编了这个脚本。我意识到可能不需要像“$_SESSION”这样的东西。

欢迎任何帮助!我知道很多人不喜欢用勺子喂食,所以提示也会对我有很大帮助。

提前谢谢你们!

编辑:我自己修复了它/在 Arun 的帮助下!

 function sendStreamNotice(){
  global $database, $session, $mailer, $form;      
    $q = "SELECT username,email "
        ."FROM ".TBL_USERS."";
    $result = $database->query($q);
    $num_rows = mysql_num_rows($result);
  if(!$result || ($num_rows < 0)){
  echo "Error displaying info";
  return;
}
  if($num_rows == 0){
  echo "Database table empty";
  return;
}

for($i=0; $i<$num_rows; $i++){
    $email  = mysql_result($result,$i,"email");
    $user = mysql_result($result,$i,"username");

     /* Attempt to send the email with new password */
     if($mailer->sendStreamNotice($user,$email))
    $_SESSION['mailed'] = true;
          else{
    $_SESSION['forgotpass'] = false;

     }
      header("Location: ".$session->referrer);
    }
}

邮件通过就好了!

http://puu.sh/1gkRx.jpg

4

1 回答 1

0

使用$num_rows = mysql_num_rows($result);而不是 mysql_numrows($result);

于 2012-10-19T04:15:10.987 回答