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

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


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

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

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


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

Proff
Юзер

Proff - 16 сентября 2015 15:36 -

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

dominika
Юзер

dominika - 16 сентября 2015 15:44 -

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

misha-koder
Юзер

misha-koder - 16 сентября 2015 16:32 -


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

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

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

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

dominika
Юзер

dominika - 16 сентября 2015 17:24 -

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

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

vitnet
PHP-developer

vitnet - 16 сентября 2015 17:49 -

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

misha-koder
Юзер

misha-koder - 16 сентября 2015 17:50 -

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

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

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

наверх