| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Чат: необходимые ф-ции. |
| Автор: HappyMan 11.9.2005, 16:02 |
| пишу чат. Сообщени в записывается в MySQL, потом считывается. Итак, что мне нужно: 1) чтоб при написании <b>test</b> он не выделял бы текст при выводе (игнорирование тегов) 2) защита от SQL-иньекций 3) правильное отображение спец. символов: ;%: )+... 4) Чтобы выделялся текст между test (т.е поддерживаются мои теги, как например тут на форуме) +еще что-то, забыл... запутался между: mysql_real_escape_string stripslashes htmlspecialchars rawurldecode rawurlencode очень важно: особенно меня интересует последовательность применения данных ф-ций! Возможно вопрос поднимался, но я не нашел. буду рад ссылке |
| Автор: alligator 11.9.2005, 16:11 |
| 1)теги можешь обрабатывать регулярками 2)вырезаешь из стоки символ " ' " или заменяешь на ` 3) незнаю =) 4)регулярки регулярки =)) поищи на форуме были такие темы stripslashes убирает слеши из строки htmlspecialchars перекодирует симповолы например '&' преобразуется в '& Добавлено @ 16:20 http://forum.codenet.ru/showthread.php?threadid=24906 Добавлено @ 16:21 Вот еще глянь http://forum.vingrad.ru/index.php?showtopic=63758 |
| Автор: HappyMan 11.9.2005, 16:30 |
| alligator нашел там где-то вот такую вещь: http://wackowiki.com/WackoDokumentacija/WackoSintaksis?v=xya это типо.... незнаю как назвать.. ее там можно где-то загрузить? ну типа конвертирующий модуль (из этого языка на ХТМЛ)?? не успел вникнуть... |
| Автор: Mal Hack 11.9.2005, 16:34 | ||||
| Порядок - во вногом зависит от задач. Последнее само собой mysql_real_escape_string.
Это зачем?
ДОстаточно второй функции |
| Автор: HappyMan 11.9.2005, 17:14 |
| Mal Hack задачи сформулированы в пунктах 1)-4) |
| Автор: Mal Hack 11.9.2005, 17:19 |
| Поясню...порядок в зависимости от того, как ты хочешь чтобы работала твоя сситема. Короче пофиг. Но 1. Преобразование текста. 2. mysql |
| Автор: HappyMan 11.9.2005, 19:59 |
| Mal Hack одного не понимаю: предположим пользователь ввел текст: <b>test</b> в чат должно вывестись: <b>test</b> т.е тэги неактивны, это достигается вклучением htmlspecialchars НО: если юзер ввел: [б]test[/б] то мой чат должен преобразовать это в <b>test</b> и вывести этот текст уже жирным! т.е ф-цию htmlspecialchars уже использовать нельзя (если использовать то выведет <b>test</b>) как же тогда быть? (чтоб при вводе <b>test</b> выводилось <b>test</b>, А при вводе [б]test[/б] выводилось TEST жирным шрифтом) |
| Автор: Mal Hack 11.9.2005, 20:13 |
| 1. htmlspecialchars. 2. preg_replace заменяешь все BBкоды. 3. регулярками заменяешь вхождения вида: <b&rt; и т.п. Т.е. подставляешь уже строки.. Вообще я бы не давал возмоность использовать тэги в любом случае. Только ББ код. |
| Автор: HappyMan 11.9.2005, 21:26 |
| Mal Hack если чесно, то как-то не укладывается... можешь пример с БОЛДОМ привести? |
| Автор: Mal Hack 11.9.2005, 21:54 |
| Делай все поочередно и анализируй вывод. |
| Автор: Рыжий 11.9.2005, 22:39 | ||||
| HappyMan вот смотри вырузка тегов (то что хотел сказать Mal Hack):
хотя так как сделал я - нерационально все лучше делать сразу:
|
| Автор: HappyMan 12.9.2005, 19:51 |
| PHP-Script Mal Hack так? $a="всем привет"; //$a="<b>всем привет</b>"; echo "до вызова htmlspecialchars:".$a."<br />"; $a=htmlspecialchars($a); echo "после вызова функции:".$a."<br>"; $t = preg_replace('/\[b]/', '<b>', $a); $x = preg_replace('/\[\/b]/', '</b>', $t); echo $x; Наверно можно оптимизировать.. |
| Автор: Mal Hack 12.9.2005, 20:02 | ||
В одну функцию. |
| Автор: HappyMan 12.9.2005, 20:03 |
| странно.. в чате пишет: %3Cb%3Etest%3C%2Fb%3E %5Bb%5Dtest%5B%2Fb%5D Добавлено @ 20:04 а в мессто русских букв: %E2%E0%EF%E4%EB%EE%E2%E0%EF%E2%E0 |
| Автор: -=Ustas=- 12.9.2005, 20:06 | ||
И еще желательно использовать вставки code для своего кода. А по функциям:
по-моему, так будет гораздо лучше... |
| Автор: Mal Hack 12.9.2005, 20:32 |
| s в модификаторы надо добавить только. Да и S было бы не лишним. |