MySQL ошибка v2

MySQL ошибка v2

Данный хак меняет вывод MySQL ошибок и дает возможность пользователю сообщить вам об ошибке.
Спасибо за идею ShapeShifter'у .. Я сделал более "людской" вывод а так же кнопку "Сообщить об ошибке", что бы пользователь мог сообщить вам об ошибке.
Именно кнопка а не автоматическая отправка, так как мне показалось так удобней, что бы не "спамить" ящик...
При нажатие кнопки "Сообщить об ошибке" Вы на почту получите следующее письмо -
MySQL ошибка - .
Адрес ошибки: httр://www.sitе.ru/210-mysql-oshibka-vyvod-informacii.html
Причина ошибки: Unknown column \'id\' in \'field list\'
Номер ошибки: 1054

SELECT id, title, date, alt_name, category, flag FROM dle_post WHERE approve=\'1\' AND date >= \'2010-03-06 16:41:30\' - INTERVAL 1 MONTH AND date < \'2010-03-06 16:41:30\' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10
Броузер пользователя: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5
IP-адрес пользователя: 87.87.87.87


1. Скачивает архив и папку "mysqli" помещаем в /engine/classes/
2. В файле /engine/classes/mysqli.class.php и mysql.class.php
Ищем:
echo '<?xml version="1.0" encoding="iso-8859-1"?>
....
....
</html>';


Меняем на:
echo '<?xml version="1.0" encoding="iso-8859-1"?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <title>Произошла ошибка</title>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
        <style type="text/css">
        <!--
        body {
            font-family: Verdana, Arial, Helvetica, sans-serif;
            font-size: 12px;
            font-style: normal;
            color: #000000;
            
        }
        
input.btn {
color:#c52424;
border:1px solid;
border-color: #e45b5b;
}
        -->
        </style>
<script type="text/javascript">
<!--
function timedRefresh(timeoutPeriod) {
    setTimeout("location.reload(true);",timeoutPeriod);
}
//   -->
</script>
        </head>
        <body style="background-color:#f8f8f8;" onload="javascript:timedRefresh(20000);">
        <div align="center" style="padding-top:20px;">
        <div align="center" style="border: 7px solid #ffc0c0; width: 500px; background-color:#fff8f8;"><br />
            <font size="4" color="#e63939">Произошла ошибка !</font>            
            <br />    <br />
                Если ошибка будет отображаться в течение 10 минут, <br />то пожалуйста нажмите на кнопку <strong>«Сообщить об ошибке»</strong>
<br />
                <br />
                
                
            
<form name="contactformlite" method="post" action="http://www.site.ru/engine/classes/mysqli/mail.php">          
<textarea name="Email_Address" id="Email_Address" style="font-family:tahoma; font-size:12px; border:2px solid #ffc0c0; background-color:#fff8f8;" rows="10" cols="85" wrap="virtual">Причина ошибки: '.$error.'
Номер ошибки: '.$error_num.'

'.$query_str.'</textarea>
<br />
<input type="submit" value="Сообщить об ошибке" class="btn">
</form>

<br />
</div>        
</div>
        </body>
        </html>';


3. www.site.ru замените на свой адрес, так же в mail_settings.php укажите свой e-mail
4. Все должно работать, для проверки удалите свою БД =)

Для любопытных ДЕМО, как это выглядит - ссылка

Скачать: mysqli.rar [1,53 Kb] (cкачиваний: 133)
Другие новости по теме:

Категория: Хаки ----- Просмотров: 1572 ----- Комментариев: 7

Вернуться

  • SaD

  • 7 марта 2010 09:20
  • Группа: User
  • ICQ: --
  • Регистрация: 20.02.2009
  • Комментариев: 303
  • Публикаций: 15
^
Шифер взял идею с 4дле. Одно время сайт был недоступен и было видно вместо стандартной ошибки простую надпись.Мне тогда тоже в голову идея пришла модифицировать эту страничку...Но на следующий день смотрю - уже кто-то сообразил и сделал. smile

--------------------
  • Группа: User
  • ICQ: --
  • Регистрация: 26.07.2008
  • Комментариев: 122
  • Публикаций: 10
^
Да не важно кто где взял идею.. главное что теперь пользователи не будут пугаться.. так как "простой" народ увидев такую ошибку -
http://bit.ly/bNdOfS
Воспринимает как "конец света".
Так же думаю не зачем выводить "MySQL Error", так как они все ровно не поймут этого.
  • myzikk

  • 7 марта 2010 10:29
  • Группа: User
  • ICQ: --
  • Регистрация: 24.12.2009
  • Комментариев: 42
  • Публикаций: 3
^
Ооо Клас хак супер,спасибо автор
  • Группа: User
  • ICQ: --
  • Регистрация: 24.11.2009
  • Комментариев: 26
  • Публикаций: 2
^
Тестировал на денвере, пришло сообщение с текстом

MySQL НЬХАЙЮ - .
юДПЕЯ НЬХАЙХ: http://webplanet.tom.ru/
оПХВХМЮ НЬХАЙХ: Table \'site.dle1_post\' doesn\'t exist
мНЛЕП НЬХАЙХ: 1146

SELECT DISTINCT DAYOFMONTH(date) as day FROM dle1_post WHERE date >= \'2010-03-01\' AND date < \'2010-03-01\' + INTERVAL 1 MONTH AND approve AND date < \'2010-03-07 15:45:51\'
аПНСГЕП ОНКЭГНБЮРЕКЪ: Version/10.00
IP-ЮДПЕЯ ОНКЭГНБЮРЕКЪ:

  • mask3d

  • 7 марта 2010 13:10
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Ну вот уже по человечески. Молодец!
  • Lobs

  • 19 марта 2010 13:46
  • Группа: User
  • ICQ: --
  • Регистрация: 18.10.2008
  • Комментариев: 102
  • Публикаций: 0
^
rashpil,
Если почтовая прога Outlook, то там по умолчанию кодировка KOI8-R. Нужно сменить на WINDOWS-1251. Или вручную менять кодировку письма.

Цитата: kavadims
Так же думаю не зачем выводить "MySQL Error", так как они все ровно не поймут этого.

В принципе да.

--------------------
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
Это выходит если сайт здохнет но красиво епт?