• PHP - Как вернуть управляемый контент при критической ошибке PHP (E_ERROR, E_PARSE)?

    Aco
    @Aco
    Заклинатель кода
    register_shutdown_function(function () {
       $error = error_get_last();
       if ($error && ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR)) {
           if (strpos($error['message'], 'Allowed memory size') === 0) { // если кончилась память
               ini_set('memory_limit', (intval(ini_get('memory_limit'))+64)."M"); // выделяем немножко что бы доработать корректно
               Log::error("PHP Fatal: not enough memory in ".$error['file'].":".$error['line']);
    	} else {
               Log::error("PHP Fatal: ".$error['message']." in ".$error['file'].":".$error['line']);
            }
            // ... завершаемая корректно ....
        }
    })
    
    


    Ловит так же падения при отсутствии свободной памяти, ошибки парсинга, и прочего
    Ответ написан
    17 комментариев
  • Новенький Windows Blocker

    gooddy
    @gooddy Автор вопроса
    Просьба оставить моральную часть вопроса впокое, кого куда уволить и что кому отрезать. Если нечего сказать по существу, просьба вернуться в свой идеальный мир, где всё работает и не ломается и не портить себе и другим настроение, СПАСИБО! :)
    Ответ написан
    4 комментария
  • Новенький Windows Blocker

    @Eddy_Em
    Уволить к чертовой матери такого «админа», который нормально венду поставить не может и права пользователя ограничить!
    Ответ написан
    4 комментария
  • Вопрос безопасности записи данных в сессию без фильтрации в php?

    @WikiLeaks
    На 98% серверов PHP хранит сессии в строго определенных папках (вариантов 10 всего, максимум), и в 99% с именем sess_[a-z0-9]+.
    Если писать в сессию не фильтрованные данные, то можно сохранить на диск сервера. например веб-шелл, и при наличии local-include уязвимости, можно будет его исполнить.
    Т.е сама по себе запись произвольных данных в сессию угрозы не представляет, но может быть использована для эксплуатирования других уязвимостей.

    Обычно инклудяд log-файлы (предварительно оставив там вредоносный код), но они очень часто не доступны для чтения с правами php.
    А вот подобрать путь до файла-сессии очень просто, а значит это облегчает потенциальный взлом.
    Ответ написан
    Комментировать
  • PHP Фреймворк для админки?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Из тех решений что я пробовал — CRUD генератор под YII. Описываем модели и генерим круд. Если вас оформление не устраивает или код — все правится в настройках шаблонов. По поводу «нету возможности работы с деревьями» и т.д. — тут уже надо самостоятельно делать. Под тот же YII есть как минимум nested sets бихейвер для моделей, пару тройку виджетов и вуаля. (правда имеющийся виджет для отрисовки деревьев мне не шибко нравится но это дело вкуса).

    Со временем шаблоны кода полностью настраиваются под себя, оформление админки меняется (использовать стандартное оформление, предоставляемое с YII… как-то не хорошо… оно убогое), а все самые самые базовые функции вообще вынесены отдельно. Я допустим просто для себя сделал модуль admin который является костяком для всего, а дальше через Gii.
    Ответ написан
    1 комментарий
  • cms для интернет магазина с поиском по атрибутам

    butteff
    @butteff
    Раз в тысячу лет заправляю свитер в носки
    Большинство cms используют атрибуты, поиск можно допилить самому без особых проблем.
    www.citilink.ru/catalog/parts/cpu/ — на битриксе, например. (с права подбор по параметрам)
    Ответ написан
    3 комментария
  • Как создать простой XML-хук для IPB?

    @LastDragon
    1) Офф. сайт: community.invisionpower.com/resources/documentation/index.html (некоторый разделы только для пользователей с активной лицензией)
    2) Реклама: ipbnet.ru (хотя руководства по созданию простого хука там, к сожалению, нет — руки не дошли...)
    3) lastdragon.ru/projects — исходники хуков (некоторые под 3.0.5, которые для 3.1.4 можно посмотреть по последним версиям на форуме)

    Вообще большинство хуков (простых) сводится к созданию хука в админке (для этого необходимо включить режим разработки), определению места вывода, добавлению файла с классом и определения единственного метода в этом классе public function getOutput() {}, который вернет HTML для вывода (если используется несколько скинов, то лучше использовать шаблоны).

    В качестве примера можно посмотреть "Новые сообщения (newposts)" (ведет на основной файл хука) — как раз добавляет вывод контент вверху форума.

    Если есть конкретные вопросы — можно спрашивать или на форуме или в ЛС (однако, в данный момент, быстрый ответ не обещаю...).
    Ответ написан
    Комментировать