[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Notice в html коде
kamanch
<?php
error_reporting(E_ALL);
$img_path = "./images/pic.jpg";
?>
<img src='<?= $img_pat ?>' />


При таком коде видим, что переменная $img_pat неопределена (т.к. опечатка в имени), следовательно никакое изображение не выведется. Но самое неприятное, что нотис мы получим в html, а в браузер он не выведется.

Типичная ситуация - не вывелось изображение. Первые мысли - отсутствует файл, потом проверка путей, потом полей в базе, где эти пути храним, потом бутылка водки с горя и головой об стену.
А всего лишь... опечатка в имени переменной.

Есть метод, чтобы этот нотис заставить в браузере "улыбаться" ? :)



Спустя 1 час, 43 минуты, 44 секунды (10.08.2012 - 08:05) Игорь_Vasinsky написал(а):
нотис есть, глянь исходный код


Цитата
<img src='<!--error--><br />
<b>Notice</b>:  Undefined variable: img_pat in <b>Z:\home\блаблабла</b> on line <b>9</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script>'/>



он не выводиться т.к. ты его в атрибуте src поймал - а от туда он не как не промониториться.

тут если тока дебаггеры юзать.

Спустя 9 минут, 49 секунд (10.08.2012 - 08:15) kamanch написал(а):
Ну то что есть, я знаю. оттого и тему создал smile.gif
Вопрос в том как раз и был, есть ли реализация, или идея, как реализовать, чтобы этот нотис в браузер высветился.

Нууу... например, после загрузки страницы яваскриптом по html пробежаться на предмет слов Notice, Warnung...

Или включить буферизацию вывода, а перед выводом этот буфер проверить на теже слова. Если встретяться, то мигать.

Что получше кто придумает?

Спустя 8 минут, 55 секунд (10.08.2012 - 08:24) Игорь_Vasinsky написал(а):

Спустя 5 минут, 56 секунд (10.08.2012 - 08:30) kamanch написал(а):
О, Игорь, ты же спец по парсингу smile.gif Значит регулярки хорошо знаешь, ну ка выдай:
Раз нотис в html, значит он внутри тега, т.е. тег был открыт <, потом что угодно, потом Notice или Warnung, опять что угодно, потом открыт следующий тег <

Спустя 26 минут, 36 секунд (10.08.2012 - 08:57) Игорь_Vasinsky написал(а):
сек

Спустя 16 минут, 59 секунд (10.08.2012 - 09:14) Игорь_Vasinsky написал(а):
Придётся сначала статику в буфер гнать

<?php
ob_start();
?>

<!--ВЕСЬ ВЫВОД-->

<
h1>Статичная страница</h1>

<
p>Абзацы текста и прочий хлам</p>

<
div>
Имитация нотиса в атрибуте src:<br />
<
img src="<?=$img_path;?>/image.png"/>
<
img src="<?=ROOT;?>/image.png"/>
</
div>

<!--
КОНЕЦ ВЫВОДА-->

<?

$html = ob_get_contents();
ob_end_clean();

preg_match_all("#<b>Notice</b>\:(.*)on line <b>.*</b>#iusU", $html, $errors);

if(!empty($errors[0]))
{
echo '<div style="border:1px solid red; padding:5px; background-color: #FBFCCF"><b>Они пытались скрыться от глаза, но попались)</b><br /><br />';

foreach($errors[0] as $error)
echo $error.'<br />';

echo '</div>';
}

#Вывод статики
echo $html;
?>


тогда мониторить будет так

user posted image

Спустя 12 минут, 53 секунды (10.08.2012 - 09:26) killer8080 написал(а):
Ребята не страдайте фигней. Есть функция set_error_handler(), покрайней мере с нотисами она отлично справляется, не перехватывает только фатал еррор.

Спустя 3 минуты, 6 секунд (10.08.2012 - 09:30) Игорь_Vasinsky написал(а):
это нуторно) и потом, здесь же задача была уловить скрытые нотисы.

Спустя 3 минуты, 24 секунды (10.08.2012 - 09:33) kamanch написал(а):
Класс!
Можно спокойно идти спать smile.gif

Спустя 4 минуты, 24 секунды (10.08.2012 - 09:37) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 10.08.2012 - 10:30)
это нуторно) и потом, здесь же задача была уловить скрытые нотисы.

я так понял, задача отловить ошибки, которые могут быть скрыты тегом, а это не обязательно нотисы, если бы путь к картинке возвращала функция, и в её имени была ошибка, был бы ворнинг. И что тогда? Писать еще одну регулярку? Когда есть штатная функция для отлова ошибок smile.gif

Спустя 1 минута, 58 секунд (10.08.2012 - 09:39) killer8080 написал(а):
Цитата (killer8080 @ 10.08.2012 - 10:37)
если бы путь к картинке возвращала функция, и в её имени была ошибка, был бы ворнинг

а, пардон, ошибся. Udefined function - это фатал rolleyes.gif

Спустя 4 минуты, 31 секунда (10.08.2012 - 09:44) Игорь_Vasinsky написал(а):
fatal и parse error не как вообще не покажутся, даже в исходнике не видно.... жал. а регулярка бы сработала) unsure.gif

Спустя 4 минуты, 15 секунд (10.08.2012 - 09:48) killer8080 написал(а):
Игорь_Vasinsky
fatal error перехватывается буферизацией
http://dklab.ru/chicken/nablas/45.html

Спустя 3 минуты, 24 секунды (10.08.2012 - 09:52) killer8080 написал(а):
И еще может кому интересно
http://dklab.ru/lib/Debug_ErrorHook/

Спустя 4 минуты, 11 секунд (10.08.2012 - 09:56) Игорь_Vasinsky написал(а):
)) да это так.. развлекуха была wink.gif

Спустя 39 минут, 5 секунд (10.08.2012 - 10:35) Zerstoren написал(а):
Цитата (Игорь_Vasinsky @ 10.08.2012 - 07:30)
это нуторно) и потом, здесь же задача была уловить скрытые нотисы.

Так и можно уловить скрытые нотайсы.

К примеру, можно полностью останавливать скрипт или если Линух (Убунту) и сервер на локалке, то ошибку выводить прямо на рабочий стол в виде нотифи сообщения.

Выглядеть будет вот так http://img6.imagebanana.com/img/nyqomnyy/20120810103605.jpeg.
Нужно будет просто в консоль отправить команду:
~$ notify-send 'SiteError: Notice in file /index.php on line 25'

Спустя 5 минут, 15 секунд (10.08.2012 - 10:40) Игорь_Vasinsky написал(а):
и тут его понесло biggrin.gif

Спустя 10 минут, 50 секунд (10.08.2012 - 10:51) Zerstoren написал(а):
Цитата (Игорь_Vasinsky @ 10.08.2012 - 08:40)
и тут его понесло biggrin.gif

Меня О_о?

Честно, я не бухал с утра)

Спустя 9 минут, 53 секунды (10.08.2012 - 11:01) Игорь_Vasinsky написал(а):
Повторяю, задача была под конкретную цель. Отловить Notice
ну а что буфер фатал эррор может перехватывать, то это просто свезло.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.