[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отключение HTML
Ramzil_Nixon
Как отлючить все введенные пользователем в форму html теги?
И как оставить только тех, которые хочешь оставить?



Спустя 5 минут, 37 секунд (24.10.2011 - 08:16) killer8080 написал(а):
используй bb-коды.

Спустя 16 минут, 24 секунды (24.10.2011 - 08:33) Ramzil_Nixon написал(а):
killer8080
Для это ведь тоже нужно сприпт написать. А я понятия не имею какое

Спустя 3 минуты, 59 секунд (24.10.2011 - 08:37) killer8080 написал(а):
Ramzil_Nixon
читай

Спустя 1 минута, 27 секунд (24.10.2011 - 08:38) YVSIK написал(а):
Цитата (killer8080 @ 24.10.2011 - 08:37)
Ramzil_Nixon
читай

и там-же есть найти не сложно как это в действии smile.gif для Ramzil_Nixon
http://bbcode.inkz.ru/14/bbcode/

Спустя 2 минуты, 49 секунд (24.10.2011 - 08:41) Ramzil_Nixon написал(а):
YVSIK
Так как игнорировать то все остальные?
Мне например не все теги надо использовать

Спустя 3 минуты, 47 секунд (24.10.2011 - 08:45) YVSIK написал(а):
пишем в ЦСС-се такой файл

Свернутый текст
[css]body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {
margin: 0;
padding: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
fieldset,img {
border: 0;
}
address,caption,cite,code,dfn,em,strong,th,var {
font-style: normal;
font-weight: normal;
}
ol,ul {
list-style: none;
}
caption,th {
text-align: left;
}
h1,h2,h3,h4,h5,h6 {
font-size: 100%;
font-weight: normal;
}

q: before,q: after {
content: '';}
abbr,acronym { border: 0;}[/css]

ну и далее ставишь свои умолчания ) каждому свойству
это пример как отключать терь осталос тебе править включение и применением Это как пример !! Можешь даже свой ЦСС придумать :) какой тебе больше понравится

Спустя 8 часов, 33 минуты, 20 секунд (24.10.2011 - 17:18) imbalance_hero написал(а):
Ramzil_Nixon
htmlspecialchars - игнорирование тегов!

Спустя 2 часа, 16 минут, 28 секунд (24.10.2011 - 19:35) Игорь_Vasinsky написал(а):
Если хочешь чтобы все теги безопасно легли в БД - то перед записью данных htmlspecialchars()

Если хочешь вырезать все теги - то перед записью данных strip_tags()

если хочешь чтоб кто хочет использовал теги - то добавь в форме checkbox и проверяй - если он отмечен - значит не strip_tags, если его не отметили - значит strip_tags()

Самый простой вариант BB-тегов

- жирный [*b][*/b]
- курсив [*i][*/i]
- маленький [*small][*/small]

* - звёздочки поставил так как этот форум хватает эти bb - как свои

Делаешь внизу формы примечание, что эти bb-теги разрешены

Потом когда принимаешь данные из текстового поля:

1. массив для bb-tags

$bbTags = array("[*b][*/b]", "[*i][*/i]", "[*small][*/small]");


2. массив для замены на html теги

$htmlTags = array("<b></b>", "<i></i>", "<small></small>");


Когда примишь textarea

$message = strip_tags($_POST['textarea']); //Вырезал все теги
$message = str_replace($bbTags, $htmlTags, $message); //Заменил BB на HTML


Как работает str_repalce() - мануал
Да - она может принимать в аргументы массив, главно соблюдай порядок наполнения массивов.

Спустя 1 час, 31 минута, 22 секунды (24.10.2011 - 21:06) Ramzil_Nixon написал(а):
Спасибо всем!

Спустя 1 час, 14 минут, 40 секунд (24.10.2011 - 22:21) imbalance_hero написал(а):
Игорь_Vasinsky
Зачем вырезать теги? Достаточно htmlspecialchars обработать в самом начале.

Ramzil_Nixon
Без strip_tags:
$message = str_replace($bbTags, $htmlTags, htmlspecialchars($_POST['textarea'])); //Заменил BB на HTML

Спустя 11 минут, 6 секунд (24.10.2011 - 22:32) Игорь_Vasinsky написал(а):
2й вариант - где допущены только те bb-теги, которые я сам разрешу

Спустя 2 часа, 49 минут, 5 секунд (25.10.2011 - 01:21) imbalance_hero написал(а):
Игорь_Vasinsky
И ? Учимся у этого форума:
<b>ЖИРНЫЙ</b>
ЖИРНЫЙ

Видишь, ничего не режится smile.gif

Спустя 1 минута, 56 секунд (25.10.2011 - 01:23) Игорь_Vasinsky написал(а):
ну ёп...


Цитата
Если хочешь чтобы все теги безопасно легли в БД - то перед записью данных htmlspecialchars()

Если хочешь вырезать все теги - то перед записью данных strip_tags()


ну в первом посте же несколько вариантов.

Спустя 3 минуты, 24 секунды (25.10.2011 - 01:26) imbalance_hero написал(а):
Игорь_Vasinsky
Код четко даёт понять, что ты рекомендуешь именно второй вариант, а не первый, вот я тебя и исправляю.

Спустя 4 минуты, 1 секунда (25.10.2011 - 01:30) Игорь_Vasinsky написал(а):
ок. это всё для ТС, эта дискуссия - тоже - для размышлений.

Спустя 5 часов, 34 минуты, 57 секунд (25.10.2011 - 07:05) Ramzil_Nixon написал(а):
imbalance_hero
Мне как раз нужно допустить только те, которые я разрешу.

Спустя 29 минут, 15 секунд (25.10.2011 - 07:34) l@pteff написал(а):
Ramzil_Nixon, не вижу проблемы, юзай strip_tags() и оставляй вторым параметром теги, которые не хочешь удалять:

$text='<p>MyText</p>';

echo strip_tags($text);
echo strip_tags($text, '<p>');

Итог:

Цитата

MyText;
<p>MyText</p>

А вообще Игорь_Vasinsky подробно описал все фильтры для тегов

Спустя 2 минуты, 55 секунд (25.10.2011 - 07:37) Ramzil_Nixon написал(а):
l@pteff
Да, я и хочу сказать что здесь достаточно информации написано для меня.

Спустя 4 часа, 30 минут, 24 секунды (25.10.2011 - 12:08) imbalance_hero написал(а):
Ramzil_Nixon
Я лишь показал пример, выбирай то, что нужно по существу. Но ведь я хочу показать тебе вот код:
<p>Text</p> - это абзац.
Обрати внимание, что в данном случае используется именно htmlspecialchars, то есть я показываю теги, но их не режу, а обрабатываю в HTML спец.символы. В данном случае я не хотел бы, чтобы мои теги были обрезаны, так как я четко показываю их и указываю на то, что эти теги обозначают абзац.


_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.