[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как поместить в базу текст с тегами из формы?
Dali
Привет всем!
Кто может подсказать?

Я из формы хочу поместить в базу текст содержащий теги.
Например такой:

<h3>Моя история</h3>
<p>
Какой то текст</p>


Если я ввожу этот текст в базу вручную, то потом в браузере он выводится обычным отформатированным этими тегами текстом.
т.е. как мне и нужно.

Но я делаю админку, и этот текст мне нужно забрасывать в базу из поля формы:

<textarea name="text" id="text" cols="86" rows="5"></textarea>


В обработчике пишу:

[/php]if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}[php]

Но этот метод хорошо пропускает в базу обычный текст без тегов и т.д.
А с тегами - Увы!


Как можно решить мою задачу? Заранее благодарен.





Спустя 1 минута, 10 секунд (30.11.2011 - 13:22) Renden написал(а):
Dali
htmlspecialchars - при записи в базу
htmlspecialchars_decode - при выводе из базы на страницу

Спустя 8 минут, 2 секунды (30.11.2011 - 13:30) killer8080 написал(а):
Цитата (Dali @ 30.11.2011 - 12:21)
В обработчике пишу:

[/php]if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}[php]

Но этот метод хорошо пропускает в базу обычный текст без тегов и т.д.
А с тегами - Увы!

blink.gif а причем тут теги? Обрабатывай входные данные как положено, через mysql_real_escape_string и все будет нормально вставляться.
Другое дело, что это чистая XSS уязвимость ...

Спустя 22 минуты, 4 секунды (30.11.2011 - 13:52) Dali написал(а):
Цитата (Renden @ 30.11.2011 - 10:22)
Dali
htmlspecialchars - при записи в базу
htmlspecialchars_decode - при выводе из базы на страницу

В обработчике я так и ввёл:

if (isset($_POST['text'])) {$text = htmlspecialchars($_POST['text']); if ($text == '') {unset($text);}}

Но как и где прописать вывод - htmlspecialchars_decode, что то не понял.

Нельзя ли подробнее...

Спустя 4 минуты, 23 секунды (30.11.2011 - 13:56) TranceIT написал(а):
Цитата (Dali @ 30.11.2011 - 10:52)
Но как и где прописать вывод - htmlspecialchars_decode, что то не понял.

То, что выводите из БД обернуть.

Спустя 2 минуты, 50 секунд (30.11.2011 - 13:59) killer8080 написал(а):
Dali
базе пофигу какой текст в неё пихают, нужно просто экранировать спецсимволы, и htmlspecialchars тут ни причем.

Спустя 5 минут, 20 секунд (30.11.2011 - 14:04) Игорь_Vasinsky написал(а):
прикрути к textarea Tiny MCE и усё wink.gif

Спустя 1 час, 34 минуты, 35 секунд (30.11.2011 - 15:39) inpost написал(а):
Dali
mysql_real_escape_string -> когда записываешь данные в БД! И всё, ничего более (кроме TRIM) использовать не надо при записи.
Если ты выводишь не html разметку, то при выводе -> htmlspecialchars,
Если хочешь выводить html -> то тебе нужно обработать htmlspecialchars, а потом использовать bb-decoder. [ b] заменяет в <b>. Достаточно всё просто.
Быстрый ответ:

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