Как я могу получить phpmail для отправки нужному пользователю, а также ограничить количество писем для определенных пользователей? Часть 2 - PullRequest
0 голосов
/ 29 января 2010

Благодаря совету Энтони я попытался упростить мою логику и синтаксис цели, которую я пытаюсь достичь, а именно, когда пишется блог, АВТОР получает уведомление по php-почте о том, что кто-то, кроме него, комментирует. Когда АВТОР комментирует, все остальные, кто комментирует, кроме него, получают другое письмо. Когда другой пользователь комментирует, AUTHOR получает уведомление, как указано выше, но все остальные, кто прокомментировал, получают электронное письмо, то же самое, которое AUTHOR отправляет OUT, когда он комментирует в своем СОБСТВЕННОМ блоге, и да, Я ВСЕ ЕЩЕ новичок:

if(isset($_POST['commentBlogSubmit']) && $auth) {



        $query = "SELECT `Email` FROM `Users` WHERE `id` = '" . $prof->id . "'";
        $request = mysql_query($query,$connection) or die(mysql_error());
        $result = mysql_fetch_array($request); 

        $Email = $result['Email'];


        $to = $Email;
        $subject = "$auth->first_name $auth->last_name left you a blog comment";
        $message = "$auth->first_name $auth->last_name left you new blog comment:<br /> <br /> <a href='BlogProfile.php?id=" . $blog->id . "'>Click here to view</a><br /><br />";
            $from = "<noreply@site.com>";
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $headers .= "From:$from";
        mail($to, $subject, $message, $headers);

        if($blog->author != $poster->id) { 

        $query = "SELECT * FROM `BlogComments` WHERE `blogID` = '" .$blog->id. "'";
        $request = mysql_query($query,$connection);
        while($result = mysql_fetch_array($request)) { 

        $emailPoster = ($result['userID']);

            $to = $emailPoster;
            $subject = "$auth->first_name $auth->last_name Commented";
            $message = "$auth->first_name $auth->last_name commented on the blog $blog->title :<br /> <br /> <a href='BlogProfile.php?id=" . $blog->id . "'>Click here to view</a><br /><br />";

            $from = "<noprely@site.com>";
            $headers  = 'MIME-Version: 1.0' . "\r\n";
            $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
            $headers .= "From:$from";
            mail($to, $subject, $message, $headers);




        }

1 Ответ

1 голос
/ 29 января 2010

Исходя из того, что вы опубликовали, я бы начал с подтверждения того, что второй запрос возвращает результаты. А во-вторых, сколько. Вместо того, чтобы отправлять электронные письма пользователям, выводите их на экран. Как:

  while($result = mysql_fetch_array($request)) {
       echo $result['userID']."\n";
  }

Возможно, добавьте print_r($result) для подтверждения правильности ключей и т. Д.

Во-вторых, если он зацикливается вправо, а значения правильные, тогда я оставляю мысль, что проблема заключается в том, что он не следует желаемой логике, то есть условия, когда отправлять электронную почту и кому.

Честно говоря, это выглядело немного странно, когда вы это писали. Возможно, запись в псевдокоде поможет вам увидеть, где находится недостающий фрагмент.

Если бы это был я, я бы сделал правило, основанное на том, кто публикует. Если есть сообщение, напишите всем, кроме автора. Таким образом, если это блоггер, он не будет получать электронные письма на свои собственные сообщения, но все остальные будут. Если это не блогер, он получит электронное письмо, потому что его идентификатор пользователя не совпадает с идентификатором комментатора.

Такое действие устраняет множество правил, основанных на том, кто есть кто, и просто делает это одним простым правилом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...