Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы » Как вывести символы (&,!) в тегах?

Как вывести символы (&,!) в тегах?


     Все вопросы » Общие вопросы    1872

вопрос
При добавлении новости пишу в тегах слово с символом & или ! из-за этого новость не добавляется. Как исправить?

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


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

Proff
Юзер

Proff - -

А пишет что? Вообще была подобная проблема на версиях 10.3 и 10.4 с исходным кодом, мод секьюрити мешал. (ссылка)

dominika
Юзер

dominika - -

Немного не верно вопрос написал. Новость добавляется без ошибки, но тег просто пропадает, как будто его вообще не писал. dle 10.1

misha-koder
Юзер

misha-koder - -


/engine/inc/addnews.php
/engine/inc/editnews.php
/engine/modules/addnews.php

в этих файлах есть следующая строка

if( @preg_match( "/[\||\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $_POST['tags'] ) ) $_POST['tags'] = "";

находите её, удаляете из регулярки нужные вам символы и готово.

dominika
Юзер

dominika - -

Если удалить восклицательный знак, нужно удалить это?
|\!

А если вообще всю строку удалить, плохого ни чего не будет? Зачем она вообще нужна?

vitnet
PHP-developer

vitnet - -

Дабы уберечь вас от XSS-атак.

misha-koder
Юзер

misha-koder - -

Как вы, наверное, знаете, в DLE есть фильтрация новостей по тегу (/tags/TAG-NAME/). Так вот эта строка проверяет наличие лишних символов, которые могут препятствовать работе этого функционала. Если фильтрация по тегу вам не требуется, можете удалять хоть некоторые символы из регулярки, хоть всю строку и следующий за ней else.

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

наверх