Обработка кавычек.

KPD

Новичок
Обработка кавычек.

Здравсвуйте.

Столкнулся с такой проблемой.

Прежде чем поместить текст в БД я прохожусь по нему функцией htmlspecialchars.

Но в результате получаю что двойные кавычки он преобразует не в "
а в "

Это нормальное поведение этой функции?
Если да то как тогда лучше быть?
Дело в том что текст я могу редактировать и если кавычки не заменять то тогда в HTML это будет некорректно распознано.

может проще вручную заменять двойнфые кавычки на "??
тоесть написать свою ф-ию аналогичную htmlspecialchars.
но насколько это скажется на быстродействии?
 

Фанат

oncle terrible
Команда форума
Прежде чем поместить текст в БД я прохожусь по нему функцией htmlspecialchars.
это неправильно.
Но в результате получаю что двойные кавычки он преобразует не в "
а в "
А ты то хотел?
Это нормальное поведение этой функции?
нормальное.
а вот применяешь ты ее совсем не по делу.
может проще вручную заменять двойнфые кавычки на "??
зачем?
тоесть написать свою ф-ию аналогичную htmlspecialchars
а в чем будет заключаться аналогичность?
в чем чмысл, по-твоему, этой функции?

-~{}~ 10.01.05 22:32:

sakon
когда ты научишься давать нормальные ссылки, а не на сотню килобайт текста?
 

SiMM

Новичок
[m]htmlspecialchars[/m]
Использовать её надо только при выводе данных пользователю, при записи в базу пользовать [m]mysql_real_escape_string[/m], остальные подробности - в ссылке, которую привёл sakon
/me косясь на Фаната - или здесь: PHP FAQ: \"Кавычки \". Cоставление запросов mysql, слеши, экранирование кавычек.
 

KPD

Новичок
хм непойму тогда...
может дело в PEAR?
я использую QUIKForms

в базе лежит всё как надо вместо кавычек - &quote;
а вот когда я это передаю в форму то там получается &qout;


хм...
 

Фанат

oncle terrible
Команда форума
KPD
ты в состоянии ответить хоть на один вопрос, который я задал?
Если нет, то просто сделай ,что тебе велят - НЕ используй функцию htmlspecialchars, которая к базам данных не имеет ни малейшего отношения.
 

KPD

Новичок
ну а вот если смотреть как работает phpBB то там в базу записывается кавычки в видt quot....
тоесть уже преобразованные
 

Фанат

oncle terrible
Команда форума
Если ты в состоянии воспринимать русский текст и вести диалог - я могу объяснить тебе все твои заблуждения и ошибки. Это все описанные в факах проблемы дошколят от веб-программирвоания.
Если же ты собираешься и далее общаться сам с собой, то этот форум тебе не подойдет.

-~{}~ 10.01.05 22:43:

KPD
забудь про идиотскую программу phpBB
то, что базу записывается кавычки в видt quot не мешает ему быть взломаным по пять раз в неделю.
 

KPD

Новичок
так как тогда правильно делать?

если у меня есть текст в котором встречаются двойные кавычки, одинарные кавычки и всякие <> и тд...

текст хранится в базе, мне его надо просто выводить на экран в HTML, а также надо редактировать его с помощью форм
тоесть запихивать в
INPYT TYPE=TEXT
и в TEXTAREA ?

-~{}~ 10.01.05 22:48:

ещё вопрос разве то как кавычки хранятся в БД влияет на безопасность форума?
 

sakon

П..и.н..ок
Те же сказали:
при вставке в базу mysql_real_escape_string
при выводе в ХТМЛ htmlspecilhars
 

KPD

Новичок
понял.
спасибо.

эх, не надо было оринтироваться на phpBB....
 

Фанат

oncle terrible
Команда форума
KPD
Неужели ты правда не понимаешь, что действия надо совершать там, где они нужны, а не от балды?

htmlspecialchars заменяет "вредные" символы в HTML. И НЕ заменяет то, что нужно для БД.
И ты функцию, которая нужна для вывода HTML, используешь для обработки данных для помещения в БД. Какой в этом смысл?
 

KPD

Новичок
спасибо всем кто помог разобраться:)

на самом деле все было просто, но я рад что эта проблема у меня всплыла....
мой класс который работает с базами использовал функцию addslashes :) а я то про это и забыл совсем уже...

а проблема с кавычками всмлалы так как функция htmlspecilhars
применялась 2 раза - первый раз вручную я её применял а второй раз в PEAR QUICKForm она применялась, отсюда то и вылезла проблема....
 
Сверху