[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ошибка в коде рассылки писем
paa66
Есть форум школьного класса. Решил сделать рассылку зарегистированным пользователям при создании новой темы. Т.е., если создаётся новая тема на форуме, то всем пользователям отправляются уведомления о новой теме с приглашением её обсудить. Написал функцию рассылки:
function send() {

$MailFrom = "моя_почта";

$mysql_database="моя БД"; //Имя базы данных

$mysql_username="логин_admin"; //Имя пользователя базы данных

$mysql_password="пароль"; //Пароль пользователя базы данных

$mysql_host="сервер"; //Сервер базы данных

//Соединяемся с базой данных

$mysql_connect = mysql_connect($mysql_host, $mysql_username, $mysql_password);

//Выбираем базу данных для работы
mysql_select_db($mysql_database);

$sql = "SELECT * FROM таблица_users";

$name = mysql_query($sql);

$row = mysql_fetch_array($name);

while($row) {

mail($row[email], $MailFrom, "Создана новая тема на форуме класса, которую необходимо обсудить. Пожалуйста, примите участие в обсуждении.");
}
}
и разместил её в отдельном файле. В одном из файлов форума в функции, которая включается при создании новой темы, сделал подключение моего файла:
require_once($includes/school.php); // к синтаксису этой строки не придерайтесь, это в качестве образца
send();
В результате при создании новой темы браузер зависает, чтобы не мучить, я его останавливаю. В таблице всего 2 почтовых адреса, первый почтовый ящик заваливает письмами, приходит штук 40, хотя создана 1 тема, а на второй не приходит ничего. Видно, что функция отправки писем не успевает отправить все за отведённое время, поэтому остальные письма приходят с задержкой. Я считаю, что ошибка в функции отправки писем. Но она несложная и, кажется, что ошибок в ней нет. Т.к. я в программировании ноль, просьба к опытным посмотреть мои коды и высказаться относительно них. Где закралась ошибка?



Спустя 24 минуты, 11 секунд (3.03.2012 - 17:21) Visman написал(а):
Цитата (paa66 @ 3.03.2012 - 21:56)
Где закралась ошибка?

Открой логи ошибок на сервере.

Спустя 45 минут, 48 секунд (3.03.2012 - 18:06) paa66 написал(а):
Цитата
Открой логи ошибок на сервере.
Дело в том, что функция отрабатывает нормально, раз отправляются письма. Или я неправильно понял?

Спустя 8 минут, 37 секунд (3.03.2012 - 18:15) Visman написал(а):
Почему mysql_fetch_array($name) за циклом?

Спустя 4 минуты, 11 секунд (3.03.2012 - 18:19) paa66 написал(а):
Предлагаешь сделать так:
while($row = mysql_fetch_array($name)) {
...
}
?

Спустя 2 минуты, 17 секунд (3.03.2012 - 18:22) Visman написал(а):
Настаиваю wink.gif
И вместо mysql_fetch_array -> mysql_fetch_assoc
И тут $row[email] внутри одинарные кавычки.

Спустя 1 час, 3 минуты, 11 секунд (3.03.2012 - 19:25) paa66 написал(а):
Цитата
И вместо mysql_fetch_array -> mysql_fetch_assoc
И тут $row[email] внутри одинарные кавычки.
Спасибо, исправил, но всё равно заваливает письмами. Сделал всё на своём компе, работает безукоризненно (в папке дэнвэра tmp\!sendmail\ на каждый адрес отправляется по одному письму). Я обратился к хостэру, скорее всего у него что-то не так. Пока жду от него ответа.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.