Email on Errors

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5426
Стаж: 20 лет 3 месяца
Откуда: Питер
Благодарил (а): 177 раз
Поблагодарили: 749 раз

Email on Errors

Сообщение Siava »

Очень полезный мод (на мой взгляд) :mrgreen:

Отсылает уведомление о любой ошибке форума по email (который прописан в конфиге форума) с описанием этой ошибки.

Пример текста письма:
Общая ошибка Message:

Couldn't obtain blocked user information.<br /><br /><b><u>DEBUG MODE</u></b><br /><br />SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND u.user_id = b.blocked_id AND b.owner_id = 2' at line 1<br /><br />SELECT b.*, u.username, u.user_id FROM phpbb_weblog_blocked b, phpbb_users u WHERE b.blocked_id IN () AND u.user_id = b.blocked_id AND b.owner_id = 2 </br /><br />Line : 177<br />File : weblog_blocked.php


IP: (это вам не к чему =))
USER: Siava
URL: /forum/weblog_blocked.php?u=2

FORM:
Array
(
[blockeduser] => t
[blockuser] => Заблокировать
Поиск Google: => 281
)
Поиск Google:

Ниже текст мода (он очень простой):

Код: Выделить всё

##############################################################
## MOD Title: Email on Errors
## MOD Author: aboyd < N/A > (N/A) http://www.outshine.com/forums/
## MOD Description: Emails the admin address when phpBB errors out.
## MOD Version: 1.0
##
## Installation Level: Easy
## Installation Time: 5 Minutes
## Files To Edit: includes/functions.php
## 
## Included Files: N/A
##############################################################
## For Security Purposes, Please Check: http://www.outshine.com/ for
## the latest version of this MOD. Downloading this MOD from other sites could
## cause malicious code to enter into your phpBB Forum.
##############################################################
## Author Notes:  This is not an official mod from phpBB.  It is licensed under
## the GPL, which should have been included.  If you find bugs, visit:
## http://www.outshine.com/forums/
##
##############################################################
## MOD History:
##
##   2005-07-23 - Version 1.0
##      - Initial release
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To
## This MOD
##############################################################

#
#-----[ OPEN ]------------------------------------------
#
includes/functions.php
#
#-----[ FIND ]------------------------------------------
#
		$template->pparse('message_body');

#
#-----[ AFTER, ADD ]------------------------------------------
#
		/*
		Adding email here so I can be aware of errors.  Avoid using phpBB-specific
		code (such as the built-in emailer class), in case that's part of the error.
		*/
		if ($msg_code == GENERAL_ERROR) {
			if (isset($board_config['board_email'])) {
				$email_from = 'From: ' . $board_config['board_email'] . "\n";
				$email_to = $board_config['board_email'];
				$email_username = (isset($userdata['username'])) ? $userdata['username']: '';
				$email_username = ($email_username == '') ? 'no defined username': $email_username;
				$email_subject = 'FORUM ERROR';
				$email_body = $msg_title . " Message:\n\n" . $msg_text . "\n\n\nIP: " . $_SERVER['REMOTE_ADDR'] . "\nUSER: " . $email_username . "\nURL: " . $_SERVER['REQUEST_URI'] . "\n\nFORM:\n" . print_r($_POST, true);
				mail($email_to, $email_subject, $email_body, $email_from);
			}
		}
#
#-----[ FIND ]------------------------------------------
#
		echo "<html>\n<body>\n" . $msg_title . "\n<br /><br />\n" . $msg_text . "</body>\n</html>";
#
#-----[ BEFORE, ADD ]------------------------------------------
#
		/*
		Adding email here so I can be aware of errors.  Avoid using phpBB-specific
		code (such as the built-in emailer class), in case that's part of the error.
		TO DO: drop this into a function so the code isn't duplicated.
		*/
		if (isset($board_config['board_email'])) {
			$email_from = 'From: ' . $board_config['board_email'] . "\n";
			$email_to = $board_config['board_email'];
			$email_username = (isset($userdata['username'])) ? $userdata['username']: '';
			$email_username = ($email_username == '') ? 'no defined username': $email_username;
			$email_subject = 'FORUM ERROR';
			$email_body = $msg_title . " Message:\n\n" . $msg_text . "\n\n\nIP: " . $_SERVER['REMOTE_ADDR'] . "\nUSER: " . $email_username . "\nURL: " . $_SERVER['REQUEST_URI'] . "\n\nFORM:\n" . print_r($_POST, true);
			mail($email_to, $email_subject, $email_body, $email_from);
		}
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Либо скачать ОТСЮДА
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Austin 3:16
phpBB 1.4.4
Сообщения: 127
Стаж: 20 лет 1 месяц
Откуда: Таллинн, Эстония
Забанен: Бессрочно

Сообщение Austin 3:16 »

Спасибо!
Поставим, поглядим...
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 19 лет 11 месяцев
Благодарил (а): 19 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Сообщение MAzZY »

Мод хороший. Установил его. А как теперь проверить? Как сгенерировать ошибку?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Код: Выделить всё

            $email_body = $msg_title . " Message:\n\n" . $msg_text . "\n\n\nIP: " . $_SERVER['REMOTE_ADDR'] . "\nUSER: " . $email_username . "\nURL: " . $_SERVER['REQUEST_URI'] . "\n\nFORM:\n" . print_r($_POST, true);
Кое-что мне в этом коде не нравится...
По стандарту phpBB нужно использовать $HTTP_SERVER_VARS и $HTTP_POST_VARS.

Добавлено спустя 2 минуты 24 секунды:

Посмотрел еще раз код, умилило вот это:

Код: Выделить всё

         $email_from = 'From: ' . $board_config['board_email'] . "\n"; 
         $email_to = $board_config['board_email'];
Вообще-то обработчик ошибок предполагает полную автономность, а значит адрес почты сюда нужно вписывать ручками...
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 19 лет 11 месяцев
Благодарил (а): 19 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Сообщение MAzZY »

Xpert, и как тогда должно все это выглядеть?
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

MAzZY писал(а):Мод хороший. Установил его. А как теперь проверить? Как сгенерировать ошибку?
Испортите какой-нибудь запрос к базе например...
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 19 лет 11 месяцев
Благодарил (а): 19 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Сообщение MAzZY »

Xpert писал(а):Испортите какой-нибудь запрос к базе например
Работает. Вполне неплохо
Xpert писал(а):

Код: Выделить всё

$email_body = $msg_title . " Message:\n\n" . $msg_text . "\n\n\nIP: " . $_SERVER['REMOTE_ADDR'] . "\nUSER: " . $email_username . "\nURL: " . $_SERVER['REQUEST_URI'] . "\n\nFORM:\n" . print_r($_POST, true);
Кое-что мне в этом коде не нравится...
По стандарту phpBB нужно использовать $HTTP_SERVER_VARS и $HTTP_POST_VARS.
Т.е. должно быть так?

Код: Выделить всё

$email_body = $msg_title . " Message:\n\n" . $msg_text . "\n\n\nIP: " . $HTTP_SERVER_VARS['REMOTE_ADDR'] . "\nUSER: " . $email_username . "\nURL: " . $HTTP_SERVER_VARS['REQUEST_URI'] . "\n\nFORM:\n" . print_r($HTTP_POST_VARS, true);
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5426
Стаж: 20 лет 3 месяца
Откуда: Питер
Благодарил (а): 177 раз
Поблагодарили: 749 раз

Сообщение Siava »

Xpert
Мод работал нормально.. только в последнее время с увеличением активности посещения форума стало проиходить куча писем, туда сыпется всё подряд, любые переходы по несуществующим ссылкам и т.п... после того, как во входящих обнаружил 15тыс. писем мод был снесён к чертям :twisted:
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 19 лет 11 месяцев
Благодарил (а): 19 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Сообщение MAzZY »

Так как же быть с $HTTP_SERVER_VARS и $HTTP_POST_VARS? Или можно оставить как есть, если нормально работает?
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 19 лет 11 месяцев
Благодарил (а): 19 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

Сообщение MAzZY »

Xpert, Siava, подскажите, как же поступить с $HTTP_SERVER_VARS и $HTTP_POST_VARS? Можно ли оставить так, как есть сейчас в моде или надо заменять? Если надо, то приведите пример замены.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5426
Стаж: 20 лет 3 месяца
Откуда: Питер
Благодарил (а): 177 раз
Поблагодарили: 749 раз

Сообщение Siava »

MAzZY
Да оставь как есть, у меня всё нормально работало =)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 21 год 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Siava писал(а):15тыс. писем
О чем? :)
И о чем бы хотелось чтобы форум сообщал?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений

Вернуться в «Поддержка модов для phpBB 2.0.x»