Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » В site.ru/rss.xml выдает ошибку - Где ее искать?

В site.ru/rss.xml выдает ошибку - Где ее искать?


     12.07.2020    rss, rss.xml    Общие вопросы, Ламерские вопросы    1850

вопрос
Пытаюсь подключить yandex turbo и при проверке https://detkam-online.com/rss.xml получаю ошибку со следующим текстом:

This page contains the following errors:
error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.


Валидатор w3.org дает такой результат:

В site.ru/rss.xml выдает ошибку - Где ее искать?


Подскажите где искать ноги этой ошибки?

Ответа пока нет


48 комментариев

TeraMoune
Эксперт

TeraMoune - 12 июля 2020 18:06 -

Вам уже написали, что за ошибка, где она и откуда у неё ноги растут. Даже подсветили жёлтеньким.

Тестовый репозиторий установки плагинов: teramoune

torber
Юзер

torber - 12 июля 2020 18:13 -

Подобную строчку я нашел только в файле rss.php, но не понимаю в чем проблема

TeraMoune
Эксперт

TeraMoune - 12 июля 2020 18:19 -

То генерация xml шаблона, Вас носом тыкают в результат работы данного файла и показывают на строку. 2, в ней проблема, а красным поясняют какого рода проблема. Вы переводили текст ?

Тестовый репозиторий установки плагинов: teramoune

torber
Юзер

torber - 12 июля 2020 18:26 -

Перевод понятен, я не вижу файла rss.xml в корне чтобы посмотреть в чем именно там проблема или речь о другом файле?

TeraMoune
Эксперт

TeraMoune - 12 июля 2020 18:46 -

Его не будет он генерируется файлом php и сразу отдаётся, а не создаёт физический файл.

Раз перевод понятен почему думаете о другом. Там дословно написано понятными словами, xml допускается только в начале строки. У вас показывает область где происходит ошибка в которой видно, что xml находится на второй строке. Хорошо же Вы переводите ошибки и понимаете ошибки.

Тестовый репозиторий установки плагинов: teramoune

torber
Юзер

torber - 12 июля 2020 19:01 -

Я не зря задал вопрос в разделе ламерские вопросы. Касательно перевода ошибки мне все понятно, в отношении того что в генерируемом файле xml написано со второй строки, а не с первой я понял. Я не понял почему он со второй строки формируется и пока не понял все равно. Если причина кроется в формировании файла посредством rss.phh то вот кусок кода из него, который за это видимо отвечает

$rss_content = <<<XML
<?xml version="1.0" encoding="{$config['charset']}"?>
<rss xmlns:yandex="http://news.yandex.ru" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
<channel>
<title>{$config['home_title']}</title>
<link>{$config['http_home_url']}</link>
<language>{$lang['wysiwyg_language']}</language>
<description>{$config['home_title']}</description>
<yandex:logo>{$config['http_home_url']}yandexlogo.png</yandex:logo>
<yandex:logo type="square">{$config['http_home_url']}yandexsquarelogo.png</yandex:logo>
<generator>DataLife Engine</generator>
XML;

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 13:29 -

попробуйте так
$rss_content = ltrim($rss_content, PHP_EOL);

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 13:59 -

dj-avtosh,

Нужно в какое-то конкретное место прописать?
Пробовал
- в конец файла
- после
$rss_content = <<<XML ...

- перед
$rss_content = <<<XML ...


Результата нет, та же ошибка выводится

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:01 -

а что выдает если распечатать $rss_content?

var_dump($rss_content); die();

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:03 -

Эм... я в php не очень, даже очень не очень - что значить распечатать?

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:04 -

я вам скинул код, что бы мы смогли увидеть результат.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:07 -

Прошу прощения, но мне не совсем понятно, что я с ним должен сделать? Видимо добавить в файл rss.php, а дальше?

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:09 -

Вставить после конструкции

$rss_content = <<<XML ...
и скинуть сюда, что выдало.

А в будущем, если все на столько печально, то лучше сразу в стол.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:11 -

string(639) " https://site.ru/ ru Деткам Онлайн – сайт для хорошего настроения детей и их родителей DataLife Engine"

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:12 -

у вас сайт в windows-1251?

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:13 -

utf-8 и файл этот тоже в utf-8

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:14 -

подскажите какая версия dle, название файла и номер строчки, куда вставили код.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:15 -

- 13.0
- rss.php
- 53 строка

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:17 -

вставьте над echo $rss_content;

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:20 -

This page contains the following errors:
error on line 2 at column 1: Document is empty
Below is a rendering of the page up to the first error.

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:21 -

через исходный код в браузере.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:25 -

если вопрос в том, что приходит в response то там Failed to load response data
В случае когда вставлял после $rss_content = <<<XML ..., то в response была xml-на а фронте те кракозяблы

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:27 -

Вопрос что выдает этот код, другого вопроса не было.

Что сложного над
echo $rss_content;
вставить
var_dump($rss_content); die();
, открыть исходный код страницы в браузере и скинуть сюда результат?

Я вам ничего не смогу подсказать - пока не увижу дамп.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:34 -

Извините, не сразу понял


string(1259) "<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:yandex="http://news.yandex.ru" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
<channel>
<title>Деткам Онлайн – сайт для хорошего настроения детей и их родителей</title>
<link>https://detkam-online.com/</link>
<language>ru</language>
<description>Деткам Онлайн – сайт для хорошего настроения детей и их родителей</description>
<yandex:logo>https://detkam-online.com/yandexlogo.png</yandex:logo>
<yandex:logo type="square">https://detkam-online.com/yandexsquarelogo.png</yandex:logo>
<generator>DataLife Engine</generator><item turbo="true">
	<title>Возвращение</title>
	<link>https://detkam-online.com/audioskazki/priklyucheniya-neznayki-i-ego-druzey-mp3/925-vozvrashenie.html</link>
	<description></description>
	<category>Приключения Незнайки</category>
	
	<pubDate>Fri, 10 Jul 2020 16:09:20 +0300</pubDate>
	<yandex:full-text></yandex:full-text>
	<turbo:content><![CDATA[]]></turbo:content>
	</item></channel></rss>"

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:36 -

как мы видим нет никакого переноса каретки. У вас нет случайно никаких плагинов, которые работаю с rss?

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:40 -

нет, стоит только один плагин но он не имеет отношения к rss

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:45 -

сейчас посмотрел - у вас что-то ставит перенос, но это что-то не в переменной $rss_content. Скиньте все содержимое rss.php

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:46 -

<?php

if( !defined( 'DATALIFEENGINE' ) ) {
	header( "HTTP/1.1 403 Forbidden" );
	header ( 'Location: ../' );
	die( "Hacking attempt!" );
}

if($dle_module != "main" AND $dle_module != "allnews" AND $dle_module != "catalog" AND $dle_module != "cat") {
	header( "HTTP/1.1 403 Forbidden" );
	header ( 'Location: /' );
	die("Hacking attempt!");
}

include_once (DLEPlugins::Check(ENGINE_DIR . '/classes/templates.class.php'));
include_once (DLEPlugins::Check(ROOT_DIR . '/language/' . $config['langs'] . '/website.lng'));

if (strpos($config['http_home_url'], "//") === 0) $config['http_home_url'] = "https:".$config['http_home_url'];
elseif (strpos($config['http_home_url'], "/") === 0) $config['http_home_url'] = "https://".$_SERVER['HTTP_HOST'].$config['http_home_url'];

$tpl = new dle_template( );
$tpl->dir = ROOT_DIR . '/templates';
define( 'TEMPLATE_DIR', $tpl->dir );

$member_id['user_group'] = 5;

if( $category != '' ) $category_id = get_ID( $cat_info, $category );
else $category_id = false;

$view_template = "rss";

$config['allow_cache'] = true;
$config['allow_banner'] = false;
$config['rss_number'] = intval( $config['rss_number'] );
$config['rss_format'] = intval( $config['rss_format'] );
$cstart = 0;

if ( $user ) $config['allow_cache'] = false;

if( $_GET['subaction'] == 'allnews' ) $config['home_title'] = $lang['show_user_news'] . ' ' . htmlspecialchars( $user, ENT_QUOTES, $config['charset'] ) . " - " . $config['home_title'];
elseif( $_GET['do'] == 'cat' ) $config['home_title'] = stripslashes( $cat_info[$category_id]['name'] ) . " - " . $config['home_title'];

$rss_content = <<<XML
<?xml version="1.0" encoding="{$config['charset']}"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
<channel>
<title>{$config['home_title']}</title>
<link>{$config['http_home_url']}</link>
<language>{$lang['wysiwyg_language']}</language>
<description>{$config['home_title']}</description>
<generator>DataLife Engine</generator>
XML;

if( !file_exists( $tpl->dir . "/rss.tpl" ) ) {

	$tpl->template = <<<HTML
[shortrss]<item turbo="true">
<title>{title}</title>
<guid isPermaLink="true">{rsslink}</guid>
<link>{rsslink}</link>
<description>{short-story}</description>
<turbo:content><![CDATA[{full-story}]]></turbo:content>
<category>{category}</category>
<dc:creator>{rssauthor}</dc:creator>
<pubDate>{rssdate}</pubDate>
</item>[/shortrss]
[fullrss]<item turbo="true">
<title>{title}</title>
<guid isPermaLink="true">{rsslink}</guid>
<link>{rsslink}</link>
<description><![CDATA[{short-story}]]></description>
<turbo:content><![CDATA[{full-story}]]></turbo:content>
<category><![CDATA[{category}]]></category>
<dc:creator>{rssauthor}</dc:creator>
<pubDate>{rssdate}</pubDate>
</item>[/fullrss]
[yandexrss]<item turbo="true">
<title>{title}</title>
<link>{rsslink}</link>
<description>{short-story}</description>
<category>{category}</category>{images}
<pubDate>{rssdate}</pubDate>
<yandex:full-text>{full-story}</yandex:full-text>
<turbo:content><![CDATA[{full-story}]]></turbo:content>
</item>[/yandexrss]
HTML;

	$tpl->copy_template = $tpl->template;

} else {

	$tpl->load_template( 'rss.tpl' );

}


if( $config['site_offline'] OR ! $config['allow_rss'] ) {

	$rss_content .= <<<XML
<item>
<title>RSS in offline mode</title>
<guid isPermaLink="true"></guid>
<link></link>
<description>RSS in offline mode</description>
<category>undefined</category>
<dc:creator>DataLife Engine</dc:creator>
<pubDate>DataLife Engine</pubDate>
</item>
XML;

} else {

	if( $config['rss_format'] == 1 ) {

		$tpl->template = str_replace( '[fullrss]', '', $tpl->template );
		$tpl->template = str_replace( '[/fullrss]', '', $tpl->template );
		$tpl->template = preg_replace( "'\\[yandexrss\\](.*?)\\[/yandexrss\\]'si", "", $tpl->template );
		$tpl->template = preg_replace( "'\\[shortrss\\](.*?)\\[/shortrss\\]'si", "", $tpl->template );
		$tpl->template = trim($tpl->template);

	} elseif( $config['rss_format'] == 2 ) {

		$rss_content = <<<XML
<?xml version="1.0" encoding="{$config['charset']}"?>
<rss xmlns:yandex="http://news.yandex.ru" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
<channel>
<title>{$config['home_title']}</title>
<link>{$config['http_home_url']}</link>
<language>{$lang['wysiwyg_language']}</language>
<description>{$config['home_title']}</description>
<yandex:logo>{$config['http_home_url']}yandexlogo.png</yandex:logo>
<yandex:logo type="square">{$config['http_home_url']}yandexsquarelogo.png</yandex:logo>
<generator>DataLife Engine</generator>
XML;

		$tpl->template = str_replace( '[yandexrss]', '', $tpl->template );
		$tpl->template = str_replace( '[/yandexrss]', '', $tpl->template );
		$tpl->template = preg_replace( "'\\[fullrss\\](.*?)\\[/fullrss\\]'si", "", $tpl->template );
		$tpl->template = preg_replace( "'\\[shortrss\\](.*?)\\[/shortrss\\]'si", "", $tpl->template );
		$tpl->template = trim($tpl->template);
	} else {

		$tpl->template = str_replace( '[shortrss]', '', $tpl->template );
		$tpl->template = str_replace( '[/shortrss]', '', $tpl->template );
		$tpl->template = preg_replace( "'\\[fullrss\\](.*?)\\[/fullrss\\]'si", "", $tpl->template );
		$tpl->template = preg_replace( "'\\[yandexrss\\](.*?)\\[/yandexrss\\]'si", "", $tpl->template );
		$tpl->template = trim($tpl->template);
	}

	$tpl->copy_template = $tpl->template;

	include_once (DLEPlugins::Check(ENGINE_DIR . '/engine.php'));

	$rss_content .= $tpl->result['content'];
}

$rss_content .= '</channel></rss>';

$rss_content = str_ireplace( '{THEME}', $config['http_home_url'] . 'templates/' . $config['skin'], $rss_content );

header( "Content-type: application/xml; charset=".$config['charset'] );
echo $rss_content;

die();

?>

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:51 -

где-то, но не в rss.php вставлен перенос каретки в начало страницы. Вспоминайте, что меняли в движке.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 14:57 -

и еще вопрос - вы случайно не редактировали rss.tpl?

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 14:59 -

только отступы табуляцией для читабельности выставил, проблема была еще до этого

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 15:00 -

попробуйте все таки для начала отключить все плагины и очистить кэш.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 15:04 -

вариант с плагином не помог, буду искать по тем файлам которые затрагивал ранее

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 15:07 -

только вот это убрать не забудьте:
var_dump($rss_content); die();

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 15:14 -

еще как вариант попробуйте над этим
include_once (DLEPlugins::Check(ENGINE_DIR . '/engine.php'));
вставить
var_dump($tpl->result['content']); die();
и так же пришлите сюда результат

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 15:16 -

string(0) ""

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 15:16 -

но замечу, что уже находится на первой строке. Понятен посыл?

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 15:17 -

а если вставить под
include_once (DLEPlugins::Check(ENGINE_DIR . '/engine.php'));
?

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 15:18 -



string(402) "<item turbo="true">
<title>Возвращение</title>
<link>https://detkam-online.com/audioskazki/priklyucheniya-neznayki-i-ego-druzey-mp3/925-vozvrashenie.html</link>
<description></description>
<category>Приключения Незнайки</category>

<pubDate>Fri, 10 Jul 2020 16:09:20 +0300</pubDate>
<yandex:full-text></yandex:full-text>
<turbo:content><![CDATA[]]></turbo:content>
</item>"


со второй строки

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 15:20 -

engine.php в utf-8 без BOM?

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 15:22 -

UTF-8

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 15:25 -

Посмотрите show.short.php, может в нем что добавлялось?

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 15:35 -

этот файл не затрагивал ранее

dj-avtosh
PHP-developer

dj-avtosh - 13 июля 2020 15:39 -

тогда нужно смотреть. можете написать мне доступы в телеграм - я посмотрю.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

torber
Юзер

torber - 13 июля 2020 16:37 -

Спасибо dj-avtosh!
Проблему решил в течении 10 минут. Проблема крылась в редактированном ранее файле engine.php - были лишние переносы кода.

TeraMoune
Эксперт

TeraMoune - 12 июля 2020 19:22 -

Проверяйте кодировку файла, используйте функцию trim к переменной $rss_content когда скрипт в конце отдаёт результат через echo.

Тестовый репозиторий установки плагинов: teramoune

New-dev.ru
Эксперт

New-dev.ru - 12 июля 2020 21:28 -

Была такая ошибка, когда один из файлов движка был сохранен в кодировке UTF8 с BOM. Уже не помню какой, проверьте rss.php, config.php, dbconfig.php

torber
Юзер

torber - 12 июля 2020 22:41 -

Спасибо за версию, но не подходит - все файлы просто в UTF-8

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх