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); // к синтаксису этой строки не придерайтесь, это в качестве образцаВ результате при создании новой темы браузер зависает, чтобы не мучить, я его останавливаю. В таблице всего 2 почтовых адреса, первый почтовый ящик заваливает письмами, приходит штук 40, хотя создана 1 тема, а на второй не приходит ничего. Видно, что функция отправки писем не успевает отправить все за отведённое время, поэтому остальные письма приходят с задержкой. Я считаю, что ошибка в функции отправки писем. Но она несложная и, кажется, что ошибок в ней нет. Т.к. я в программировании ноль, просьба к опытным посмотреть мои коды и высказаться относительно них. Где закралась ошибка?
send();
Спустя 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 написал(а):
Настаиваю
И вместо mysql_fetch_array -> mysql_fetch_assoc
И тут $row[email] внутри одинарные кавычки.
И вместо 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\ на каждый адрес отправляется по одному письму). Я обратился к хостэру, скорее всего у него что-то не так. Пока жду от него ответа.