+ Ответить в теме
Страница 5 из 5 ПерваяПервая 1 2 3 4 5
Показано с 41 по 46 из 46

Тема: Поиск fatal error

  1. #41
    Местный Degradator скоро придёт к известности Аватар для Degradator
    Регистрация
    02.07.2012
    Сообщений
    2,041
    Thanks
    141
    Thanked 151 Times in 151 Posts
    С горем пополам допил скрипт, очень долго возился с header('location: $_SERVER['requsturi']). Но таки сделал.

    private function get_include_contents($filename) {
    global $debug;

    $key = (!empty($_SESSION['corruptedBlock']['name'][$this->name]))?true:false;

    if($key){
    return 'You have corrupted user block: '.$this->name.'<br/>';
    }

    if (is_file($this->pathToPHP)) {
    $_SESSION['corruptedBlock']['name'][$this->name] = true;

    ob_start("errorHandler");

    $file = @file_get_contents($filename);

    eval ('?>'.$file);

    $text = ob_get_contents();
    ob_end_clean();
    header_remove('location');
    $_SESSION['corruptedBlock']['name'][$this->name] = false;
    return $text;
    }

    if($debug)
    return 'This is not a file: '.$filename.'<br/>';
    else
    return '';
    }



    function errorHandler($str){
    header('location: '.$_SERVER['REQUEST_URI']);
    return "";
    }


    Больше всего доставило неудобств header('location: '.$_SERVER['REQUEST_URI']); Так и не понял, в каком случае вызывается errorHandler и как он работает, но суть в том, что он срабатывает всегда, даже тогда, когда ошибки нет. И что мы получаем в этом случае? Вечный редирект на себя. Пытался сначала сделать какое-то условие, чтобы header('location не вызывался, но он всегда вызывается. И наверно после часа моих бесполезных велосипедов и свистулек, наконец пришло в голову стоящее решение - удалить header в конце функции. По взрослому, надо с сессий переносить скрипт в базу.
    Последний раз редактировалось Degradator; 29.01.2014 в 15:52.

  2. #42
    Модератор Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Аватар для Den1xxx
    Регистрация
    24.05.2011
    Адрес
    Гомель
    Сообщений
    2,501
    Thanks
    125
    Thanked 214 Times in 205 Posts
    Записей в дневнике
    9
    Цитата Сообщение от Degradator Посмотреть сообщение
    Больше всего доставило неудобств header('location: '.$_SERVER['REQUEST_URI']); Так и не понял, в каком случае вызывается errorHandler и как он работает, но суть в том, что он срабатывает всегда, даже тогда, когда ошибки нет. И что мы получаем в этом случае? Вечный редирект на себя.
    Ну так предупреждали же, что лучше на другой адрес.
    А гетом можно возвращать имя файла, и при новом ходе записывать этот файл как порченый:

    header('location: ./?fatal_error=somefile.php');

  3. #43
    Местный alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее Аватар для alexdrob
    Регистрация
    08.09.2009
    Адрес
    Краснодарский край
    Сообщений
    6,487
    Thanks
    39
    Thanked 1,096 Times in 1,066 Posts
    Не понял, кто предупреждал? О Чём? Почему лучше? Нужно же открывать требуемую страницу, и в случае, если файл испорчен, игнорировать его? Значит нужно редиректить на ту же, с отключенным файлом?
    Даже их кода автора топика видно, что он хочет эту же страницу открыть.

  4. #44
    Модератор Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Den1xxx - просто великолепная личность Аватар для Den1xxx
    Регистрация
    24.05.2011
    Адрес
    Гомель
    Сообщений
    2,501
    Thanks
    125
    Thanked 214 Times in 205 Posts
    Записей в дневнике
    9
    Цитата Сообщение от alexdrob Посмотреть сообщение
    Значит нужно редиректить на ту же, с отключенным файлом?
    Как вы себе это представляете? Если скрипт падает?
    Опять туда же, и он опять упадет? Если он не успеет записать флаг до падения — это очень хрупкая дорожка.

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

  5. #45
    Местный Degradator скоро придёт к известности Аватар для Degradator
    Регистрация
    02.07.2012
    Сообщений
    2,041
    Thanks
    141
    Thanked 151 Times in 151 Posts
    Цитата Сообщение от Den1xxx Посмотреть сообщение
    Вообще мне кажется нужно при входе в процедуру заранее записывать флаг что файл порченый.
    А при успешном выходе из процедуры записывать его в нормальный.
    Тогда нормально отработает.
    Вроде бы так и сделал

  6. #46
    Местный alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее alexdrob обеспечил(а) себе прекрасное будущее Аватар для alexdrob
    Регистрация
    08.09.2009
    Адрес
    Краснодарский край
    Сообщений
    6,487
    Thanks
    39
    Thanked 1,096 Times in 1,066 Posts
    Цитата Сообщение от Den1xxx Посмотреть сообщение
    Опять туда же, и он опять упадет?
    не читаете вообще что писали ренген и я?


    Цитата Сообщение от Den1xxx Посмотреть сообщение
    Если он не успеет записать флаг до падения
    он не может не успеть

+ Ответить в теме
Страница 5 из 5 ПерваяПервая 1 2 3 4 5

Похожие темы

  1. Ответов: 5
    Последнее сообщение: 11.12.2010, 21:15
  2. Fatal error: Call to undefined...
    от gambrinus в разделе PHP
    Ответов: 6
    Последнее сообщение: 11.05.2010, 08:41
  3. Fatal error: Class...
    от Safik_91 в разделе HTML
    Ответов: 1
    Последнее сообщение: 02.05.2010, 20:48
  4. Fatal error: Call to undefined function mysql_connect()
    от DigitalBrain в разделе Веб-сервер
    Ответов: 1
    Последнее сообщение: 01.03.2009, 16:50
  5. Ответов: 9
    Последнее сообщение: 25.02.2009, 15:56

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения