Перейти к публикации

Специальные символы в Использовать значения полей как перекрестные гиперссылки


Рекомендованные сообщения

Например в допполе стоит Использовать значения полей как перекрестные гиперссылки и если значение есть символ " или & то идет массовый редирект.

Как можно избавится от этого?

Сайт

Ссылка на сообщение
Поделиться на других сайтах

в шаблоне например выводится "/xfsearch/ozvuchka/Marie+%26+Veler/", а в адресной строке "/xfsearch/ozvuchka/Marie+%26amp%3B+Veler/" и выдает Сайт dle.loc выполнил переадресацию слишком много раз.

Ссылка на сообщение
Поделиться на других сайтах

Видимо версию нагадать мы тут на картах должны были...
А так учитесь читать, например DLE v13.1:

Цитата

31. Для дополнительных полей, имеющих тип "Перекрестные ссылки", добавлена возможность использования в значениях символа двойных кавычек, и символа амперсанда.

Вы же всё таки местный эксперт.

Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, Mr. Bot сказал:

Видимо версию нагадать мы тут на картах должны были...
А так учитесь читать, например DLE v13.1:

Вы же всё таки местный эксперт.

об этом знаю, и понять не могу почему в адресной строке вместо "%26" мне выдает "%26amp%3B" и идет редирект.

Вот пример в шаблоне "https://anime-free.ru/xfsearch/ozvuchka/Marie+%26+Veler/", а в адресной строке становится "https://anime-free.ru/xfsearch/ozvuchka/Marie+%26amp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3Bamp%3B+Veler/"
Как я понял идет сбой в urlencode так как после него & становится %26amp%3B.

Если что на сервере PHP 7.3

Ссылка на сообщение
Поделиться на других сайтах

Как минимум там правила для ЧПУ менялись несколько раз для доп. полей, проверьте что у вас они актуальные.
А так по внешнему виду можно лишь гадать.

Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, Mr. Bot сказал:

Как минимум там правила для ЧПУ менялись несколько раз для доп. полей, проверьте что у вас они актуальные.
А так по внешнему виду можно лишь гадать.

Скорее всего где то в "engine/engine.php" идет ошибка, так как создал тестовый файл и он нормально выдал "test+%26+test" и при переходе нет ошибки

<?php
$url = urlencode('Marie & Veler');
echo "<a href=\"/xfsearch/{$url}/\">11111</a>";

вот тестовый код и нормально все перешло.

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, alukardua сказал:

в шаблоне например выводится "/xfsearch/ozvuchka/Marie+%26+Veler/", а в адресной строке "/xfsearch/ozvuchka/Marie+%26amp%3B+Veler/" и выдает Сайт dle.loc выполнил переадресацию слишком много раз.

Вы сами себе противоречите то что у вас в шаблоне а значит и в адресной строке. Или вы описываете некорректно. Либо значения выводите не так как это предусмотрено именно DLE. Начните с того что предоставьте конкретную ссылку на страницу где у вас выводится поле и какое именно поле. Искать нужное значение по всему вашему сайту, чтобы найти новость где у вас & в поле есть среди тысяч новостей, весьма затруднительно.

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, celsoft сказал:

Вы сами себе противоречите то что у вас в шаблоне а значит и в адресной строке. Или вы описываете некорректно. Либо значения выводите не так как это предусмотрено именно DLE. Начните с того что предоставьте конкретную ссылку на страницу где у вас выводится поле и какое именно поле. Искать нужное значение по всему вашему сайту, чтобы найти новость где у вас & в поле есть среди тысяч новостей, весьма затруднительно.

ссылка на пост https://anime-free.ru/1544-naruto-uragannye-hroniki-2-svjazi-1-serija.html в озвучке: Marie & Veler вот для примера.

Вот скрин ошибки

 a5cfcb33355e.png

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, celsoft сказал:

Вы сами себе противоречите то что у вас в шаблоне а значит и в адресной строке. Или вы описываете некорректно. Либо значения выводите не так как это предусмотрено именно DLE. Начните с того что предоставьте конкретную ссылку на страницу где у вас выводится поле и какое именно поле. Искать нужное значение по всему вашему сайту, чтобы найти новость где у вас & в поле есть среди тысяч новостей, весьма затруднительно.

Заметил прикол если в адресной строке ввести "/xfsearch/ozvuchka/test+test/" то все нормально срабатывает, а если ввести "/xfsearch/ozvuchka/test+&+test/" то выдает ошибку Сайт dle.loc выполнил переадресацию слишком много раз.

А если ввести "/xfsearch/test+&+test/" то все нормально срабатывает.

Ссылка на сообщение
Поделиться на других сайтах

решил проблему. Просто заменил в "engine/engine.php"

str_replace("&#039;", "'", $xf)

на

rawurlencode(str_replace(array("&#039;", "&quot;", "&amp;", "&#123;", "&#91;", "&#58;"), array("'", '"', "&", "{", "[", ":"), $xf))

и все заработало

Ссылка на сообщение
Поделиться на других сайтах

У вас версия DLE не актуальная? Где поддержки этих символов еще не было. Теперь понятно. Я подумал что у вас проблема с использованием актуальной версии DLE

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, celsoft сказал:

У вас версия DLE не актуальная? Где поддержки этих символов еще не было. Теперь понятно. Я подумал что у вас проблема с использованием актуальной версии DLE

у меня версия 13.1

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Captain сказал:

Актуальная это последняя, 14.0 на данный момент.

Знаю, просто срок лицензии вышел😂, по этому приходится извращаться немного

Ссылка на сообщение
Поделиться на других сайтах
В 21.07.2020 в 00:21, celsoft сказал:

У вас версия DLE не актуальная? Где поддержки этих символов еще не было. Теперь понятно. Я подумал что у вас проблема с использованием актуальной версии DLE

С 13.1 же поддерживается, или там баги были в поддержке?

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Mr. Bot сказал:

С 13.1 же поддерживается, или там баги были в поддержке?

баг был пока строка была

str_replace("&#039;", "'", $xf)

то & преобразовывал в %26amp%3B, после смены на 
 

rawurlencode(str_replace(array("&#039;", "&quot;", "&amp;", "&#123;", "&#91;", "&#58;"), array("'", '"', "&", "{", "[", ":"), $xf))

все нормально стало работать.
Так и не понял с чем это было связано так как если урл был "/xfsearch/допполе/test+&+test/" шел многоразовый редирект, а в таком варианте "/xfsearch/test+&+test/" то нормально все было.

Изменено пользователем alukardua
Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

Похожая проблема и у меня.

Если в названии новости (на странице вывода всех тегов) есть символ & тогда тег который отображает кол-во тегов ведет в никуда и показывает ошибку 404. Пример
tags/m.c. sar %26 the real mccoy/ - работает правильно
tags/m.c. sar %26amp%3B the real mccoy/ - ошибка 404

Как можно это исправить? Движок 15.2 \ PHP 7.4

Ссылка на сообщение
Поделиться на других сайтах

Добрый день,

Проверили на чистом дистрибутиве. Проблема не подтверждается. DLE на странице вывода всех тегов использует в ссылке %26 для данного символа, а не %26amp%3B

Скорее всего причина вашей проблемы в том что у вас либо некорректно модифицированы файлы скрипта, либо данные в БД были сохранены некорректно.
 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...