![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| Gtaman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 10.4.2006 Репутация: нет Всего: нет |
Пишу я форум и сообщение вывожу через htmlspecialchars();. Фильтруються, как и положено все html теги.
Так вот, мне нужно сделать так, чтобы, если я ввожу http://url, то выводилась ссылка, а если что то типа <script>alert();</script>, то просто текст. Это сообщение отредактировал(а) Gtaman - 23.7.2006, 21:39 |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Gtaman, а ссылку как ты вводишь? Просто текстом? Или обрамляешь тегами? И что у тебя выводится вместо ссылки?
|
|||
|
||||
| Gtaman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 10.4.2006 Репутация: нет Всего: нет |
Не, ну вообще-то htmlspecialchars'у пофигу, как я ввожу
Нужно, чтоб работало просто текстом...... И можно еще пример привести с тегами...... |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 4 Всего: 259 |
Gtaman, ну так регулярные выражения тебе в руки - и заменяй что надо.
|
|||
|
||||
| Gtaman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 10.4.2006 Репутация: нет Всего: нет |
Ну дык вот за этим я сюда и написал. Допустим, замениться file.php на <a href="file.php">file.php</a>, но htmlspecialchars ведь не пропустит! Будет тока текст! Но если htmlspecialchars убрать, то получиться что напишет кто нибудь что-то типа
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=?type=http://url"> и все, песец...... |
|||
|
||||
| R.M. |
|
|||
![]() Анархист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2164 Регистрация: 8.6.2005 Где: Питер Репутация: нет Всего: 30 |
Gtaman, сначала htmlspecialchars() а потом регулярками меняй что тебе нужно.
Это сообщение отредактировал(а) Куксикус - 24.7.2006, 15:38 -------------------- Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека. Nokia LifeStyle - Всё для смартфонов Nokia |
|||
|
||||
| Gtaman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 10.4.2006 Репутация: нет Всего: нет |
Дайте кто нибудь пример!
|
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 6 Всего: 69 |
Gtaman,
А нафига ты будешь давать возможность ввода тегов? Безопасность захромает. strip_tags и затем вперед с прегами. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Gtaman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 10.4.2006 Репутация: нет Всего: нет |
-=Ustas=-, не, мне не нужны теги. Мне нужно, как в IPB форумах, вводишь ссылку текстом(и если можно, то еще пример с [url=][/url], как в ipb), а заменяеться на тег и при этом чтоб не было таких небезопасных ситуаций......
|
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 6 Всего: 69 |
Ну и?! В чем проблема?
1. Режишь входящий текст от тегов - strip_tags() 2. Ищешь ссылки либо ббкод типа [url=][/url], и прегами делаешь замену - preg_replace() -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 4 Всего: 259 |
-=Ustas=-, вот он и просит пример регулярки, кои (эти примеры) на форуме уж не знаю в какой раз приводились. Чето наплыв в этом сезоне форумописальщиков.
|
|||
|
||||
| Gtaman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 10.4.2006 Репутация: нет Всего: нет |
-=Ustas=-, да я же уже объяснял!
Ввожу я текстом ссылку: http://url и должена быть ссылка, а не текст. Это делаеться регулярками, которую я могу посмотреть в соседней теме, но вот как и со стрип тэгс(как она работает кстати?) я не понимаю, КАК эти тэги обойдут htmlspecialchars??? У меня вот так записано:
|
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 6 Всего: 69 |
Я же тоже уже объяснял. 1. $text = strip_tags($text) Здесь у тебя текст очищен от тегов, но в нем есть ссылки, вида http и далее. Вот их и обрабатывай прегами -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Gtaman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 10.4.2006 Репутация: нет Всего: нет |
Аха..... значит htmlspecialchars не нужен?
|
|||
|
||||
| Drache |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 31.3.2006 Репутация: нет Всего: 3 |
дело не в том нужен он или нет, а в том что ты хочешь получить в итоге.
Есть 2 варианта: 1. теги в виде текста (т.е. они не работают, а просто выводятся) - значит тебе к htmlspecialchars() 2. теги вообще убираются - тогда тебе к strip_tags(). В общем сначала выбираешь что тебе нужно и применяешь к тексту. $text = htmlspecialchars($text); // например так А теперь уже можешь заменять все что угодно на ссылки. Ну здесь уже сам придумай как это сделать с помощью регулярок (или найди) - не писать же весь код за тебя Речь идет о том в каком порядке юзать функции вот и все. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |