Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> htmlspecialchars, Нужна помощь! 
V
    Опции темы
Gtaman
Дата 23.7.2006, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 10.4.2006

Репутация: нет
Всего: нет



Пишу я форум и сообщение вывожу через htmlspecialchars();. Фильтруються, как и положено все html теги.

Так вот, мне нужно сделать так, чтобы, если я ввожу http://url, то выводилась ссылка, а если что то типа <script>alert();</script>, то просто текст.  

Это сообщение отредактировал(а) Gtaman - 23.7.2006, 21:39
PM MAIL   Вверх
mr.Anderson
Дата 23.7.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Gtaman, а ссылку как ты вводишь? Просто текстом? Или обрамляешь тегами? И что у тебя выводится вместо ссылки? 


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Gtaman
Дата 23.7.2006, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 10.4.2006

Репутация: нет
Всего: нет



Не, ну вообще-то htmlspecialchars'у пофигу, как я ввожу smile

Нужно, чтоб работало просто текстом...... И можно еще пример привести с тегами...... 
PM MAIL   Вверх
smartov
Дата 24.7.2006, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 4
Всего: 259



Gtaman, ну так регулярные выражения тебе в руки - и заменяй что надо. 
PM MAIL   Вверх
Gtaman
Дата 24.7.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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">

и все, песец...... 
PM MAIL   Вверх
R.M.
Дата 24.7.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Анархист
****


Профиль
Группа: Участник
Сообщений: 2164
Регистрация: 8.6.2005
Где: Питер

Репутация: нет
Всего: 30



Gtaman, сначала htmlspecialchars() а потом регулярками меняй что тебе нужно.  

Это сообщение отредактировал(а) Куксикус - 24.7.2006, 15:38


--------------------
Помнишь как бодрили дискотеки прошлого века? Теперь стул, компьютер и нету человека.

Nokia LifeStyle - Всё для смартфонов Nokia 
PM MAIL WWW ICQ   Вверх
Gtaman
Дата 24.7.2006, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 10.4.2006

Репутация: нет
Всего: нет



Дайте кто нибудь пример! 
PM MAIL   Вверх
-=Ustas=-
Дата 24.7.2006, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 6
Всего: 69



Gtaman, 
Цитата(Gtaman @  24.7.2006,  15:18 Найти цитируемый пост)
Но если htmlspecialchars убрать, то получиться что напишет кто нибудь что-то типа 

А нафига ты будешь давать возможность ввода тегов? Безопасность захромает. strip_tags и затем вперед с прегами. 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Gtaman
Дата 24.7.2006, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 10.4.2006

Репутация: нет
Всего: нет



-=Ustas=-, не, мне не нужны теги. Мне нужно, как в IPB форумах, вводишь ссылку текстом(и если можно, то еще пример с [url=][/url], как в ipb), а заменяеться на тег и при этом чтоб не было таких небезопасных ситуаций...... 
PM MAIL   Вверх
-=Ustas=-
Дата 25.7.2006, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 6
Всего: 69



Ну и?! В чем проблема?
1. Режишь входящий текст от тегов - strip_tags()
2. Ищешь ссылки либо ббкод типа [url=][/url], и прегами делаешь замену - preg_replace() 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
smartov
Дата 25.7.2006, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 4
Всего: 259



-=Ustas=-, вот он и просит пример регулярки, кои (эти примеры) на форуме уж не знаю в какой раз приводились. Чето наплыв в этом сезоне форумописальщиков. 
PM MAIL   Вверх
Gtaman
Дата 25.7.2006, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 10.4.2006

Репутация: нет
Всего: нет



-=Ustas=-, да я же уже объяснял!

Ввожу я текстом ссылку: http://url и должена быть ссылка, а не текст. Это делаеться регулярками, которую я могу посмотреть в соседней теме, но вот как и со стрип тэгс(как она работает кстати?) я не понимаю, КАК эти тэги обойдут htmlspecialchars???

У меня вот так записано:

Код

echo nl2br(htmlspecialchars($message['post']));
 
PM MAIL   Вверх
-=Ustas=-
Дата 25.7.2006, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 6
Всего: 69



Цитата(Gtaman @  25.7.2006,  13:20 Найти цитируемый пост)
-=Ustas=-, да я же уже объяснял!

Я же тоже уже объяснял.
1. $text = strip_tags($text)
Здесь у тебя текст очищен от тегов, но в нем есть ссылки, вида http и далее. Вот их и обрабатывай прегами 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Gtaman
Дата 25.7.2006, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 10.4.2006

Репутация: нет
Всего: нет



Аха..... значит htmlspecialchars не нужен? 
PM MAIL   Вверх
Drache
Дата 25.7.2006, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 31.3.2006

Репутация: нет
Всего: 3



дело не в том нужен он или нет, а в том что ты хочешь получить в итоге.
Есть 2 варианта:
1. теги в виде текста (т.е. они не работают, а просто выводятся) - значит тебе к htmlspecialchars()
2. теги вообще убираются - тогда тебе к strip_tags().

В общем сначала выбираешь что тебе нужно и применяешь к тексту.
$text = htmlspecialchars($text); // например так

А теперь уже можешь заменять все что угодно на ссылки.
Ну здесь уже сам придумай как это сделать с помощью регулярок (или найди) - не писать же весь код за тебя smile

Речь идет о том в каком порядке юзать функции вот и все.
 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0582 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.