К сожалению, произошла ошибка! Код: 201601301501048 .. в TYPO3 7.6

Я установил TYPO3 версии 7.6 и после добавления расширения на свою страницу получил ошибку:

«К сожалению, произошла ошибка! Код: 201512031647523f4d731f»

Я не понимаю смысла этой ошибки, и я также включаю 'displayErrors' => 1 в локальной конфигурации, но все равно не получаю значимой ошибки.

введите здесь описание изображения


person Vishal Tanna    schedule 03.12.2015    source источник


Ответы (3)


Вам необходимо отключить «Обработчик исключений Content Object Exception Handler», который в новых версиях является обработчиком исключений. Если элемент контента / плагин вызывает исключение, он больше не удаляет весь сайт, а только сам. Чтобы отключить его, установите

config.contentObjectExceptionHandler = 0

Справочник

Не забудьте повторно включить обработчик исключений при запуске, и в вашей действующей системе вы можете найти трассировку исключения в своих файлах журнала. Собственно то, что Виктор Ливаковский говорит в другом ответе.

person Jost    schedule 03.12.2015
comment
Whatafa! Почему это не параметр отладки в LocalConfiguration.php? Что касается такого рода вещей, у меня к TYPO3 отношения любви и ненависти. Хорошо, я голоден, так что теперь поеду .. - person Martin Krung; 25.07.2018
comment
В производственной среде вы не должны включать отладочный вывод, и в большинстве случаев в этом нет необходимости - у вас будет сообщение об ошибке и трассировка стека в журнале. Так что делайте это только так, как описано здесь, в системах разработки (см. Фреймворк ведения журнала) и другой ответ stackoverflow.com/a/34067853/2444812 - person Sybille Peters; 18.01.2021

В основном это дата + хэш, что делает каждую из таких ошибок уникальной.

Для среды разработки вы можете выключить, как предложил @Jost.

Но для производства очень важно, чтобы он был включен, поэтому, если некоторые из ваших плагинов или библиотек TS не работают, это не приведет к нарушению всего вывода и отобразит "Ой, произошла ошибка "без какой-либо информации, но теперь вы видите сообщение с кодом.

Затем реальный пользователь веб-сайта может сообщить вам об этом коде, и вы можете найти этот код в журнале ошибок TYPO3, который по умолчанию находится в typo3temp/logs/, если вы не настроили его иначе.

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

person Viktor Livakivskyi    schedule 03.12.2015
comment
В более новых системах TYPO3, отличных от Composer, по умолчанию это будет typo3temp / var / logs. В системах на основе Composer сообщения журнала находятся в другом месте var ... - person Sybille Peters; 18.01.2021

Вы можете открыть файл ./typo3/sysext/frontend/Classes/ContentObject/Exception/ProductionExceptionHandler.php

Найдите строку К сожалению, произошла ошибка!. Добавьте строку отладки сразу после объявления функции.

    /**
 * Handles exceptions thrown during rendering of content objects
 * The handler can decide whether to re-throw the exception or
 * return a nice error message for production context.
 *
 * @param \Exception $exception
 * @param AbstractContentObject $contentObject
 * @param array $contentObjectConfiguration
 * @return string
 * @throws \Exception
 */
public function handle(\Exception $exception, AbstractContentObject $contentObject = null, $contentObjectConfiguration = array())
{
debug ($exception, 'handle $exception');

Затем вы используете расширение отладки, например fh_debug. Это даст вам такой результат. Он показывает вам обратный след вызова, который привел к этой ошибке. Обратные трассировки показаны в 2-х форматах. Вы можете добавить больше строк отладки на позиции перед местами из трассировки, чтобы иметь больше информации об ошибке.

<table><tbody><tr><td>index.php</td><td>34</td><td>call_user_func</td></tr><tr><td>index.php</td><td>33</td><td>run</td></tr><tr><td>Application.php</td><td>78</td><td>handleRequest</td></tr><tr><td>Bootstrap.php</td><td>302</td><td>handleRequest</td></tr><tr><td>RequestHandler.php</td><td>232</td><td>INTincScript</td></tr><tr><td>TypoScriptFrontendController.php</td><td>3478</td><td>recursivelyReplaceIntPlaceholdersInContent</td></tr><tr><td>TypoScriptFrontendController.php</td><td>3512</td><td>INTincScript_process</td></tr><tr><td>TypoScriptFrontendController.php</td><td>3564</td><td>cObjGetSingle</td></tr><tr><td>ContentObjectRenderer.php</td><td>859</td><td>render</td></tr><tr><td>ContentObjectRenderer.php</td><td>943</td><td>render</td></tr><tr><td>ContentObjectArrayContentObject.php</td><td>41</td><td>cObjGet</td></tr><tr><td>ContentObjectRenderer.php</td><td>805</td><td>cObjGetSingle</td></tr><tr><td>ContentObjectRenderer.php</td><td>859</td><td>render</td></tr><tr><td>ContentObjectRenderer.php</td><td>953</td><td>handle</td></tr><tr><td>ProductionExceptionHandler.php</td><td>53</td><td>debug</td></tr></tbody></table><br><table><tbody><tr><th>Object TYPO3\CMS\Core\Error\Exception</th></tr><tr><td>message</td><td class="el">PHP Catchable Fatal Error: Argument 1 passed to TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::render() must be an instance of TYPO3\CMS\Frontend\ContentObject\AbstractContentObject, null given, called in /home/myuser/public_html/neu/typo3_src-7.6.10/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php on line 1359 and defined in /home/myuser/public_html/neu/typo3_src-7.6.10/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php line 927</td></tr>
<tr><td>code</td><td class="el"><table><tbody><tr><th>Integer</th></tr><tr><td>1</td></tr></tbody></table></td></tr>
<tr><td>file</td><td class="el">/home/myuser/public_html/neu/typo3_src-7.6.10/typo3/sysext/core/Classes/Error/ErrorHandler.php</td></tr>
<tr><td>line</td><td class="el"><table><tbody><tr><th>Integer</th></tr><tr><td>111</td></tr></tbody></table></td></tr>
</tbody></table>

<h3>handle $exception</h3><hr>


Текст, добавленный позже: Тем временем больше нет необходимости редактировать файл PHP ProductionExceptionHandler.php в TYPO3. Вы просто устанавливаете и настраиваете расширение fh_debug, которое теперь автоматически выполняет необходимые действия.

person Franz Holzinger    schedule 27.07.2016
comment
Не раскрывайте отладочную информацию в продуктивных средах и, ради бога, не возитесь с основным кодом. - person j4k3; 15.08.2016
comment
@ j4k3: Ваш комментарий не имеет никакого смысла. Вывод отладочной информации контролируется настройками отладки Install Tool. Больше не называйте мой код беспорядком! - person Franz Holzinger; 16.08.2016
comment
Во-первых, я этого не сделал. Во-вторых, почему бы и мне. В-третьих, что так сложно понять в этой щедрой отладочной информации? Внутренности вашего кода - это то, о чем вы обычно не хотите, чтобы ваши потенциальные злоумышленники знали. В-четвертых. Не надо. Беспорядок. С участием. Файл. Основной. - person j4k3; 16.08.2016
comment
Да, конечно, вы можете разработать расширение TYPO3, которое делает то же самое. Это быстрое решение. Может даже быть случай, когда клиент - единственный человек, который может предоставить отладочную информацию. Вся отладочная информация приведена в моем примере. Конечно, это должно быть снова удалено из TYPO3 Core сразу после обнаружения причины исключения. Его можно легко отключить, установив DevIpMask в инструменте установки. - person Franz Holzinger; 16.08.2016