Ошибка 404 и оповещение
Ранее я уже писал о том, что обязательно нужна на блоге отдельная страница ошибки 404 и ее оформлении в статье “404ю надо использовать“.
Остановимся еще на одном моменте. Страницу с выводом ошибки надо использовать по полной программе. Конечно, хостеры предлагают статистику по ошибкам в логах хостинга, к примеру в wardstate, который часто лежит в папке сайта. Но нам, как всем русским, очень лениво лезть и смотреть что же там понакосячило. Предлагаю быстрое уведомление вас, как владельца сайта блога на wordpress по мейлу. Сделать это довольно просто, займемся этим.
Находим файл 404.php в файлах вашей темплаты (шаблона). Именно он отвечает за вывод данных при ошибке 404 - отсутствие страницы запроса. Вполне возможно, что в вашей темплате вывод организован по другому, но пока не будем трогать ответвления, а остановимся на основной схеме организации.
Итак, файл 404.php найден. Дописываем в него в редакторе Notepad2 (чтобы не заморачиваться с проблемами boom и utf кодировкой) следущее:
<?php include(TEMPLATEPATH . "/404info.php"); ?>
Таким образом мы указываем, что необходимо будет подключить еще и файл информатор об ошибке. Создаем в папке нашего шаблона еще один (пока пустой) файл 404info.php Что же мы будем писать в новом файле - да некоторый кусочек такого вот вида
<?php
$adminemail = get_bloginfo('admin_email');
$website = get_bloginfo('url');
$websitename = get_bloginfo('name');
if (!isset($_SERVER['HTTP_REFERER'])){
$failur = "Кто-то пытался зайти на: $website".$_SERVER['REQUEST_URI']."
и получил 404 ошибку (страницы нет).";
$failur .= "
Он пришел отсюда: ".$_SERVER['HTTP_REFERER'];
mail($adminemail, "Сообщение о 404 ошибке",$failur,"От: $website");
}
?>
Первые три строки определяют мейл админа, указанный в настройках блога, URL блога и его название. Далее идет кусочек, определяющий что должно быть указано в письме администратору. Ну а последнее это команда на отправку письма вебмастеру со всеми данными, которые удалось собрать по поступившей ошибке 404.
Далее уже ваше дело - не обращать внимание на поступившее сообщение или принять меры по определению почему ошибка возникла и как это дело исправить.
Замечу, что файл стоит сохранить в кодировке ANSI, не будет проблем с отображением текста письма в мейлерах и не надо будет переключаться в кодировках.
Еще, в продолжение темы, можно чуть видоизменить и дополнить параметрами отправляемое письмо: пусть теперь файл 404info.php будет содержать это -
<?php
$adminemail = get_bloginfo('admin_email');
$website = get_bloginfo('url');
$uri = $_SERVER['REQUEST_URI'];;
$ip = $_SERVER['REMOTE_ADDR'];
$ref = $_SERVER['HTTP_REFERER'];
if($ref == ""){$ref = "Нет данных";}
$e_line = "Сайт: $website | Запрошена страница: $uri | Откуда пришел: $ref | IP: $ip";
mail($adminemail, "Сообщение о 404 ошибке",$e_line,"От: $website");
?>
Соответственно, получим сообщение с какого сайта письмо, какую страницу запросили, откуда пришел запрос и его IP. Вполне вероятно, что данные откуда поступил запрос может не оказаться, тогда просто будет вписано -”Нет данных”
Ваши предложения по улучшению оповещения и мыслях, что еще можно выжать из страницы, принимаются.

Блог
Услуги
Карта
CSS оптима
RSS
О нас
Контакт