На нашем сайте - сайте, посвященном ошибкам, очень желательно было установить систему устранения этих самых ошибок. В Рунете для этих целей уже традиционно используется система Orphus.
Одно время скрипт этой системы успешно работал на сайте, но в один прекрасный момент вдруг перестал, и все попытки реанимировать его оказались тщетными.
Пришлось разрабатывать свой скрипт. Как оказалось, все не так-то просто. Помогли уроки JavaScript, ну и, конечно же, Google с Яндексом. В итоге, при сложении нескольких найденных блоков скрипта и почерпнутых из учебника знаний получился вполне рабочий модуль для проверки ошибок на сайте. Для его работы необходима поддержка PHP на хостинге.
Последняя версия скрипта 4.1 основана на плагине typo к CMS Drupal. Автор плагина Роман Архаров. В этой версии появилась функция отображения окружающего ошибку текста, сама же ошибка выделяется красным.
Модуль состоит из четырех файлов: mistakes.js, mistakes.css, mistakes.php и overlay.png.Скачать можно отсюда. Чтобы его подключить, нужно поместить эти файлы в директорию своего сайта, например в папку «mistakes» и на всех страницах сайта между тегами «head» вставить две строки:
<script type="text/javascript" charset="windows-1251" src="/путь до файла/mistakes.js"></script>
<link href="/путь до файла/mistakes.css" rel="stylesheet" type="text/css" />
При этом после src=" и href=" нужно прописать путь к файлу mistakes.js и mistakes.css соответственно.
Файл mistakes.js. В этом файле нужно изменить значение переменной misphploc (то, что между кавычками "") на путь к файлу mistakes.php.Файл mistakes.php.
Здесь нужно изменить значение нескольких переменных:
$title - заголовок сообщения,
$to, - email, на который будут отправляться сообщения,
$mymail - email, от кого пришло сообщение.
Ну и, конечно же, для того чтобы посетитель знал, что он может посодействовать в исправлении ошибок, нужно разместить на страницах вашего сайта, например, такую фразу:
На сайте работает система проверки ошибок. Обнаружив неточность в тексте, выделите ее и нажмите Ctrl + Enter.
Также открыть окошко отправки сообщения можно, кликнув по ссылке:
Код ссылки:
<a href="javascript:void(0)" onclick="PressLink()">Отправить сообщение об ошибке</a>
Исходная кодировка скрипта windows-1251. Если ваш сайт работает на utf-8, то создайте в папке со скриптом файл .htaccess и добавьте в нем строку:
AddDefaultCharset windows-1251
Также вам скорее всего нужно будет переформатировать в utf-8 файл mistakes.js
Скачать модуль mistakes-4.1.zip (zip архив 7Kb).
Если вас по каким-либо причинам не устраивает последняя версия, попробуйте предыдущую - 3.3. mistakes3.3.zip (zip архив 6Kb).
Успешной вам борьбы с опечатками)) Вопросы и пожелания оставляйте в комментариях.
Комментарии
Решилось?
Опубликовано пользователем gorniy
Похоже, проблема решилась сама собой.
Notice: Undefined index: ... on line 63
Опубликовано пользователем Алексей
А если отображается такая ошибка вместо "Адрес страницы : " как ее можно исправить?
Notice: Undefined index: submit in /var/www/.../mistakes/mistakes.php on line 63
Re: Notice: Undefined index: ... on line 63
Опубликовано пользователем gorniy
Отключить нотисы ;)
везде где есть в скрипте
Опубликовано пользователем Alex D
везде где есть в скрипте такое:
if($_POST['submit'])
чтоб небыло нотисов надо поменять на такое:
if(isset($_POST['submit']) && $_POST['submit'])
таким образом мы сначала проверим создана ли вообще такая переменная и ошибок не выведет
Спасибо, ребята! Все
Опубликовано пользователем Алексей
Спасибо, ребята! Все получилось! =)
вопрос
Опубликовано пользователем тест
ребята подскажите что писать в строке # Email адрес, от кого пришло сообщение:
Вопрос
Опубликовано пользователем gorniy
Все что хотите)
Здравствуйте, замечательный
Опубликовано пользователем Валера
Здравствуйте, замечательный скрипт!
Но есть повод для версии 4.1
<a href="javascript:void(0)" onclick="PressLink()">Отправить сообщение об ошибке</a>
этот код открывает окно сообщения без выделенного текста. Было бы идеально, чтоб при нажатии /img/ctrlenter.png" (картинка объявления сообщающая о функционировании системы коррекции ошибок) идентично заменяла действие клика кнопок ctrl + enter
Для этого вместо onclick=
Опубликовано пользователем gorniy
Для этого вместо onclick="PressLink()" нужно написать onclick="CtrlEnter()"
ошибка "Forbidden"
Опубликовано пользователем Ozz
Использую CMS Getsimple, создал в корневой директории папку "mistakes" куда закинул файлы скрипта. При нажатии Ctrl+Enter появляется окошко с надписью "Forbidden! You do not have permission to access this document."
Права на папку и файл ставлю 777 - все равно такая ошибка.. Что делать? Спасибо!
ошибка "Forbidden"
Опубликовано пользователем gorniy
А на сами файлы какие права выставлены?
тоже 777, пытался разные
Опубликовано пользователем Ozz
тоже 777, пытался разные ставить - не помогает.. может что-то нужно с htaccess делать?
ошибка "Forbidden"
Опубликовано пользователем gorniy
Могу посмотреть, но уже не бесплатно) Обращайтесь.
ошибка в Firefox
Опубликовано пользователем Ozz
Предыдущую ошибку исправил переместив папку со скриптов в папку с темой.. Спасибо! ))
Еще ошибка появляется в Файрфоксе 36 - окошко появляется, но не работают кнопки "Закрыть", а также не появляются адрес страницы и выделенный текст в соответствующих окошках.. Это баг?
ошибка в Firefox
Опубликовано пользователем gorniy
Это фича)) В убунту посмотрел на 36-ом - без проблем.
Помогите плиз решить проблему
Опубликовано пользователем Андрей
Помогите плиз решить проблему. в хроме не работает урл страницы и пишет [object HTMLDocument] скрин для наглядности http://cl.ly/image/472L383u3L1a
в почту приходит эта жа надпись
Re: Помогите плиз решить проблему
Опубликовано пользователем gorniy
Здесь, на нашем сайте тоже так показывает?
нет(( на вашем сайте
Опубликовано пользователем Андрей
нет(( на вашем сайте нормально.
при этом в сафари у меня работает
Попробуйте предыдущую версию.
Опубликовано пользователем gorniy
Попробуйте предыдущую версию.
Ошибки скрипта
Опубликовано пользователем Mary
Спасибо автору за скрипт, но выявились некоторые ошибки в его работе:
Когда в выделяемом тексте присутствует жирный шрифт или выделяется текст из 2-х соседних абзацев, то выделяемый текст обрезается и красным выделяется обрезанный его кусок.
Если удастся исправить, напишите, пожалуйста! Проверить ошибку можно тут http://www.homeopath.spb.ru/ofic/reestr/161-agnus-plus
Ошибки скрипта
Опубликовано пользователем gorniy
Да, есть такое. Может, кто из спецов подскажет, как исправить.
Не кликабельная ссылка
Опубликовано пользователем Сергей
Здравствуйте. Будьте добры, скажите, пожалуйста, почему в версии 4.0 ссылка на страницу ошибки (та, что в письме) - не кликабельная? Вот если раньше приходило письмо с ошибкой, то можно было нажать на ссылку в письме и перейти на нужную страницу, а теперь этого сделать нельзя, ссылка, увы, не кликабельная. Если это можно как-то исправить, подскажите, пожалуйста, как. Спасибо.
Re: Не кликабельная ссылка
Опубликовано пользователем gorniy
Поправил: версия 4.1
Не кликабельная ссылка
Опубликовано пользователем Сергей
Спасибо большое, скрипт работает шикарно!
Ребята подскажите что
Опубликовано пользователем max
Ребята подскажите что вписывать в это поле $mymail - email, от кого пришло сообщение. ? также когда приходит письмо то в нем чужой аватар как это изменить ?
Чей email, того и аватар)
Опубликовано пользователем gorniy
Чей email, того и аватар)
у меня не такой аватар
Опубликовано пользователем max
у меня не такой аватар
Доброго дня, использую ваш
Опубликовано пользователем alpik
Доброго дня, использую ваш скрипт, спасибо, нравится, но в последнее время скрипт перестал работать в хроме, не пойму из-за чего. Именно не определяется страница при отправке ошибки. Сообщения доходят на емайл, но строки - Адрес страницы: и Ошибка:
пустые. В других браузерах проблемы такой нет
скрин прилагаю:
http://s008.radikal.ru/i306/1510/61/5663b330ec85.jpg
У меня почему-то работает.
Опубликовано пользователем gorniy
У меня почему-то в Хроме работает:
Добрый день. при тестировании
Опубликовано пользователем Марина
Добрый день. при тестировании письма с ошибками не приходят на мой указанный адрес. Где то я ошибаюсь.
Файл mistakes.php.
$mymail - email, от кого пришло сообщение. вопрос: какой (чей) адрес я должна сюда указать?
http://www.mistakes.ru
Опубликовано пользователем gorniy
http://www.mistakes.ru/comment/1220#comment-1220
Для какой версии друпала этот
Опубликовано пользователем Victor
Для какой версии друпала этот модуль ?
Для всех.
Опубликовано пользователем gorniy
Для всех.
Здраствуйте, проверил работу
Опубликовано пользователем Виктор
Здраствуйте, проверил работу скрипта в Chrome при отправке ошибки и закрытии окна, нажимаю в браузере кнопку назад и загружается таже страница, как я понял при отправке ошибки страница перезагружается но тогда не понятно почему при переходе назад открывается таже страница? В Firefox кстати такого не наблюдается!
Огромное Вам спасибо! Это
Опубликовано пользователем Алексей
Огромное Вам спасибо! Это самое то!
Здравствуйте. Спасибо за
Опубликовано пользователем Михаил
Здравствуйте. Спасибо за скрипт - выручили. Страничка доната есть? Но есть небольшая проблемка, указал почту куда приходить письма будут на mail.ru (пробовал и gmail.com). Письма попадают в спам. Причем отмечаешь письмо НЕ как спам, должно бы новое уже попадать во входящие... ан нет, все равно спам. Подскажите как это "вылечить". Спасибо.
Михаил, попробуйте поменять
Опубликовано пользователем gorniy
Михаил, попробуйте поменять адрес от кого отправляется письмо на что-нибудь вроде info@domen.ru - domen.ru - адрес вашего сайта. Также можно попробовать в тело письма добавить информацию: телефон, адрес "отправителя", название "компании"...
Именно так и сделано. Спам и
Опубликовано пользователем Михаил
Именно так и сделано. Спам и все тут
Еще, как вариант, добавить
Опубликовано пользователем gorniy
Еще, как вариант, добавить адрес в адресную книгу...
Спасибо за скрипт,
Опубликовано пользователем reno
Спасибо за скрипт, установился на сайт легко.
Хорошо еще было бы добавить капчу или иной метод борьбы со спамом...
На нашем сайте этот скрипт
Опубликовано пользователем gorniy
На нашем сайте этот скрипт работает уже много лет, у сайта довольно хорошая посещаемость, и спама практически нет. Изредка бывает, что кто-то балуется, но от этого никак не защититься. Скрипт загружается через ифрэйм, и если вы нигде не поставите ссылку на файл mistakes.php, то роботы не смогут вычислить форму. Кстати говоря, это неплохое решение для контактной формы на сайте...
То, что надо! Спасибо за
Опубликовано пользователем webmera
То, что надо! Спасибо за шикарный скрипт =)
Спасибо за скрипт, все
Опубликовано пользователем Alexander
Спасибо за скрипт, все работает. Особенно стало актуальным, когда орфус стал нерабочим)
Одна проблемка, видимо связанная с кодировкой. Сайт на utf8. Хтааксесс разместил. Приходит все, кроме "Комментария", в нем - пустое поле.
Если меняю кодировку mistakes.php на utf8 - приходит все, включая комментарий в "закорючках". Есть ли какое-то решение? Спасибо!
Нужно все менять на utf-8. У
Опубликовано пользователем Евгений
Нужно все менять на utf-8. У меня работает.
Админ, помоги плиз. Сделал на
Опубликовано пользователем ParadiseDM
Админ, помоги плиз. Сделал на этом сайте все как ты говорил http://shop.fabrika-diodov.ru/ , но только на почту ничего не приходит. Вообще. Все варианты уже сделал. Точно такой же скрипт подключал на другом сайте и там работало, а тут сделал тоже самое и не хочет работать
Исправил?
Опубликовано пользователем TermitNeT
Исправил?
Доброго времени суток! Не
Опубликовано пользователем Евгений
Доброго времени суток! Не пойму неужели никто не встречался с этой ошибкой? http://d.pr/i/TqfC Когда текст копируешь к примеру жирный и простой то он его нормально не берет.
Кароче я подстроил под себя
Опубликовано пользователем TermitNeT
Кароче я подстроил под себя html. и переестали приходить сообщения на почту (хотя до этого я не проверял)
Вот мой html
<!-- Скрипт отправки сообщений об ошибке http://mistakes.ru/script/mistakes_dev -->
<!-- Версия 4.1 от 27.04.2015-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<TITLE>Отправить ошибку</TITLE>
<style type="text/css">
body {
margin: 23px 28px 0 28px;
font-size:14px;
font-family:Helvetica, Sans-serif, Arial;
line-height:2em;
}
form {margin: 0;}
.text {
font-weight: bold;
font-size:12px;
color:#777;
}
.copyright {
font-size:11px;
color:#777;
}
.mclose a{
font:bold 16px Verdana;
color:#7f7f7f;
position:absolute;
right:12px;
top:9px;
display:block;
text-decoration:none;
}
.mclose a:hover{
color: #000;
}
#m{
border: 1px solid silver;
padding: 3px;
width: 294px;
border-radius:4px;
font-size: 13px;
background-color: #fff;
}
#m strong{
color:red;
}
</style>
<script language="JavaScript">
var p=top;
function readtxt()
{ if(p!=null)document.forms.mistake.url.value=p.loc
if(p!=null)document.forms.mistake.mis.value=p.mis
}
function hide()
{ var win=p.document.getElementById('mistake');
win.parentNode.removeChild(win);
}
</script>
<?php
if($_POST['submit']) {
# Заголовок сообщения - замените "yousite.ru" на имя своего сайта:
$title = 'Обратная связь';
$ip = getenv('REMOTE_ADDR');
$url = (trim($_POST['url']));
$mis = (trim($_POST['mis']));
$comment = substr(htmlspecialchars(trim($_POST['comment'])), 0, 100000);
$mess = '
<html>
<head>
<title>Ошибка на сайте</title>
</head>
<body>
<strong>Адрес страницы:</strong> <a href="'.$url.'">'.$url.'</a>
<br/>
<strong>Ошибка:</strong> '.$mis.'
<br/>
<strong>Комментарий:</strong> '.$comment.'
<br/>
<strong>IP:</strong> '.$ip.'
'.$_POST['mess'].'
</body>
</html>
';
# Email адрес, на который должны приходить сообщения:
$to = 'termitnet@mail.ru';
# Email адрес, от кого пришло сообщение:
$mymail='termitnet@gmail.com';
# Вместо "yousite.ru" указжите имя вашего сайта:
$from = "From: =?windows-1251?B?". base64_encode("hhide.ru"). "?= < $mymail >\n";
$from .= "X-Sender: < $mymail >\n";
$from .= "Content-Type: text/html; charset=windows-1251\n";
mail($to, $title, $mess, $from);
echo '<div class="mclose"><a href="javascript:void(0)" onclick="hide()" title="Close">×</a></div><br><br><br><center>Thank!<br>You massage send.<br><br><br><input onclick="hide()" type="button" value="Close" id="close" name="close"><br><br><br><a class="copyright" href="hhide.ru" target="_blank" title="">hhide.ru</a><center>';
exit();
}
?>
</head>
<body onload=readtxt()>
<div class="mclose"><a href="javascript:void(0)" onclick="hide()" title="Close">×</a></div>
<form name="mistake" action="" method=post>
</div>
<span class="text">
Comment (write your mail) :
</span>
<br />
<textarea id="m" rows="18" name="Comment (write your mail)" cols="30"></textarea>
<div style="margin-top: 7px"><input type="submit" value="Enter" name="submit">
<input onclick="hide()" type="button" value="Close" id="close" name="close">
</div>
</form>
</body></html>
Шикарно !!!
Опубликовано пользователем Sprinter
Шикарно !!!
Здравствуйте! Сами пишете об
Опубликовано пользователем Сергей
Здравствуйте! Сами пишете об ошибках, клеймите безграмотность на своём сайте, а сами позволяете себе пропускать запятые. Неавторитетно!
Вот фраза с пропущенными запятыми:
"но в один прекрасный момент вдруг перестал"
Страницы
Добавить комментарий