Ошибка 404 и оповещение

15.10.2010
ReTweet

Ранее я уже писал о том, что обязательно нужна на блоге отдельная страница ошибки 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. Вполне вероятно, что данные откуда поступил запрос может не оказаться, тогда просто будет вписано -”Нет данных”

Ваши предложения по улучшению оповещения и мыслях, что еще можно выжать из страницы, принимаются.

Коротко о сайте.

Блог meganfoxstar.ru поможет вам в Установке и настройке cms Vamshop, PHPProBid, Esyndicat, закрепит и расширит имеющиеся знания. Создание сайтов, продвижение сайтов, оптимизация информации. Теория и практика seo. CSS-верстка, веб-мастеринг, интернет-технологии, манимейкинги – все это и намного больше вы сможете найти на страницах нашего проекта!.

Основной        Дополнит         Twitter
RSS фид основной    RSS фид дополнительный    Всего Фолловеров блога
1006
RSSПодписка на обновления по RSS

Обновления блога по почтеОбновления блога на почтовый ящик