rarst
  • 0
Гуру

Что может вызвать ошибку «мусор после элемента документа»?

  • 0

У меня есть ошибки PHP, перенаправленные в файл журнала. Только для установки WP, так что это определенно не откуда-то еще. Вот что начало всплывать в последнее время (это все, не вырезано):

[22-Sep-2010 14:30:41] junk after document element at line 2, column 0
[22-Sep-2010 16:17:08] junk after document element at line 2, column 0
[22-Sep-2010 17:19:42] junk after document element at line 2, column 0
[22-Sep-2010 18:30:19] junk after document element at line 2, column 0
[22-Sep-2010 20:19:23] junk after document element at line 2, column 0
[23-Sep-2010 14:51:40] junk after document element at line 2, column 0
[23-Sep-2010 15:54:33] junk after document element at line 2, column 0
[23-Sep-2010 17:23:02] junk after document element at line 2, column 0

На самом деле это не похоже на ошибку PHP ( функция бла-бла не удалась в строке x ), они очень редки и, похоже, не привязаны к загрузке страницы (может быть, к какому-то событию cron?) и не было никаких серьезные изменения конфигурации за несколько месяцев, кроме обновления плагинов и одного или двух новых (за несколько дней до того, как это началось).

Результаты поиска в Google в основном касаются синтаксического анализа XML… Из чего WP, вероятно, делает многое (каналы, обновления, что еще?..), но как точно определить, что идет не так?

Это меня очень озадачило.

Share
  1. Быстрый поиск в Google подтвердил ваше подозрение… скорее всего, это ошибка синтаксического анализа XML. Кроме того, некоторые обсуждения на форумах предполагают, что это вызвано вставкой скрипта после закрывающего </rss> тега.

    Если это вставленный скрипт, скорее всего, это результат взлома или атаки на ваш сайт или хост.

    Другая возможность — ошибка PHP в скрипте генерации RSS. PHP вернет ошибку в строке, а сообщение об ошибке, не являющееся XML, будет прочитано синтаксическим анализатором XML как «мусор». Это также может быть результатом фида, который ваш сайт пытается прочитать (например, на панели администратора), а не обязательно фида, который вы создаете.

    • 0
    • Я видел темы, но они применялись бы, если бы мои страницы вызывали ошибку во внешнем парсере… Ситуация кажется противоположной — что-то вызывает ошибку в моем парсере. К сведению, признаков взлома нет, тройная проверка — это был мой первый шаг, как только слово «взломать» появилось в Google. Я пытаюсь проверить внешние каналы, но их куча (здесь наркоман RSS..)

      • 0
    • … и если какой-либо из них был взломан на внешнем сайте, это произошло бы из-за такой ошибки с вашей стороны. Это не приведет к уязвимости вашего сайта, но синтаксический анализатор XML все равно будет задыхаться от «мусора».

      • 0
  2. Решено. Идея внешнего фида была правильной, разобраться с фидом было немного сложнее.

    Я установил плагин Core Control и включил журнал HTTP-запросов.

    Затем он просто сидел и ждал, пока ошибка не повторится, и проверял, какой канал был загружен в одно и то же время.

    Тематическая лента:

    • принадлежал одному из недавно установленных плагинов;
    • был сожжен дотла с фатальной ошибкой PHP вместо содержимого.

    И валидатор фида выдавал точное совпадение:

    строка 1, столбец 0: неопределенный корневой элемент: br

    строка 2, столбец 0: ошибка синтаксического анализа XML: :2:0: мусор после элемента документа

    PS Я не уверен, какой ответ лучше принять, этот с точным решением или EAMann с идеями и обсуждением? Редактировать: я все равно не могу принять свои два дня, вот он.

    • 0

Оставить ответ

You must login to add an answer.