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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чат: необходимые ф-ции. запутался: mysql_real_escape_string, str 
:(
    Опции темы
HappyMan
  Дата 11.9.2005, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



пишу чат. Сообщени в записывается в MySQL, потом считывается.

Итак, что мне нужно:
1) чтоб при написании <b>test</b> он не выделял бы текст при выводе (игнорирование тегов)
2) защита от SQL-иньекций
3) правильное отображение спец. символов: ;%: )+...
4) Чтобы выделялся текст между test (т.е поддерживаются мои теги, как например тут на форуме)
+еще что-то, забыл...

запутался между:
mysql_real_escape_string
stripslashes
htmlspecialchars
rawurldecode
rawurlencode

очень важно: особенно меня интересует последовательность применения данных ф-ций!

Возможно вопрос поднимался, но я не нашел. буду рад ссылке


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
alligator
Дата 11.9.2005, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



1)теги можешь обрабатывать регулярками
2)вырезаешь из стоки символ " ' " или заменяешь на `
3) незнаю =)
4)регулярки регулярки =)) поищи на форуме были такие темы
stripslashes убирает слеши из строки
htmlspecialchars перекодирует симповолы
например '&' преобразуется в '&amp;
Добавлено @ 16:20
http://forum.codenet.ru/showthread.php?threadid=24906
Добавлено @ 16:21
Вот еще глянь http://forum.vingrad.ru/index.php?showtopic=63758
PM MAIL   Вверх
HappyMan
Дата 11.9.2005, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



alligator
нашел там где-то вот такую вещь:
http://wackowiki.com/WackoDokumentacija/WackoSintaksis?v=xya

это типо.... незнаю как назвать.. ее там можно где-то загрузить? ну типа конвертирующий модуль (из этого языка на ХТМЛ)?? не успел вникнуть...


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 11.9.2005, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Порядок - во вногом зависит от задач.
Последнее само собой mysql_real_escape_string.

Цитата(HappyMan @ 11.9.2005, 17:02)
rawurldecode
rawurlencode

Это зачем?

Цитата(HappyMan @ 11.9.2005, 17:02)
stripslashes
htmlspecialchars

ДОстаточно второй функции

PM ICQ   Вверх
HappyMan
Дата 11.9.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Mal Hack
задачи сформулированы в пунктах 1)-4)


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 11.9.2005, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Поясню...порядок в зависимости от того, как ты хочешь чтобы работала твоя сситема.
Короче пофиг. Но
1. Преобразование текста.
2. mysql

PM ICQ   Вверх
HappyMan
Дата 11.9.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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 жирным шрифтом)


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 11.9.2005, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



1. htmlspecialchars.
2. preg_replace заменяешь все BBкоды.
3. регулярками заменяешь вхождения вида: &lt;b&rt; и т.п. Т.е. подставляешь уже строки..

Вообще я бы не давал возмоность использовать тэги в любом случае. Только ББ код.
PM ICQ   Вверх
HappyMan
Дата 11.9.2005, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Mal Hack
если чесно, то как-то не укладывается... можешь пример с БОЛДОМ привести?


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 11.9.2005, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Делай все поочередно и анализируй вывод.
PM ICQ   Вверх
Рыжий
Дата 11.9.2005, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

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



HappyMan
вот смотри вырузка тегов (то что хотел сказать Mal Hack):

Код

$a="<b>всем привет</b>";
echo "до вызова htmlspecialchars:".$a."<br />";
$a=htmlspecialchars($a);
echo "после вызова функции:".$a;


хотя так как сделал я - нерационально все лучше делать сразу:
Код

echo htmlspecialchars($a);


PM MAIL ICQ   Вверх
HappyMan
Дата 12.9.2005, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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;

Наверно можно оптимизировать..


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Mal Hack
Дата 12.9.2005, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(HappyMan @ 12.9.2005, 20:51)
$t = preg_replace('/\[b]/', '<b>', $a);
$x = preg_replace('/\[\/b]/', '</b>', $t);

В одну функцию.
PM ICQ   Вверх
HappyMan
Дата 12.9.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



странно.. в чате пишет:
%3Cb%3Etest%3C%2Fb%3E
%5Bb%5Dtest%5B%2Fb%5D
Добавлено @ 20:04
а в мессто русских букв: %E2%E0%EF%E4%EB%EE%E2%E0%EF%E2%E0


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
-=Ustas=-
Дата 12.9.2005, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



И еще желательно использовать вставки code для своего кода. А по функциям:
Код

$a = preg_replace("/ *\[b\](.*?)\[\/b\] */i", "<b>\\1</b>", $a);

по-моему, так будет гораздо лучше...

Это сообщение отредактировал(а) -=Ustas=- - 12.9.2005, 20:08


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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