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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите, сабж 
:(
    Опции темы
Рыжий
Дата 17.2.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Всем привет!

Значит так, мне нужно занести некую информацию в базу данных.
Конечно же перед тем как это сделать нужно применить хоть какие-нибудь меры безопасности.
Я использую 2 команды:
1)addslashes
2)htmlspecialchars

вот можете посмотреть код:

Код

$first = addslashes($first);
$second = addslashes($second);


$first = htmlspecialchars($first);
$second = htmlspecialchars($second);

вроде бы все хорошо срабатывает smile а дальше мне естевственно нужно вывести эти данные на страницу сайта, для начала я
избавляюсь от слэшей:

Код

$first = stripslashes($first);
$second = stripslashes($second);


Ну а теперь уже можно показывать результат, да не тут то было!
если например ввести "Привет" то на экран он выводит \"Привет\" то есть слэши он все равно не убирает!
Как же быть????

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


индеец
***


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

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



по-моему так: addslashes() добавляет слеши, а htmlspecialchars() преобразует кавычки в " т.е. при выводе stripslashes() уже кавычех не находит ... по-моему htmlspecialchars() достаточно и addslashes() уже не надо
PM   Вверх
Mont
Дата 17.2.2005, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Vingrad developer
Сообщений: 274
Регистрация: 13.11.2004
Где: Altay

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



используй
Код

$first=mysql_escape_string ($first);
$second=mysql_escape_string ($second);


и почитай вот здесь


--------------------
"Если однажды Вдруг
Меня не окажется вовсе
в заповедной заветной тарелке
Твоего праведного сновидения
Знай - Неуловимые мстители настигли меня."
© Егор Летов
PM MAIL ICQ   Вверх
Рыжий
Дата 17.2.2005, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата
по-моему так: addslashes() добавляет слеши, а htmlspecialchars() преобразует кавычки в " т.е. при выводе stripslashes() уже кавычех не находит ... по-моему htmlspecialchars() достаточно и addslashes() уже не надо


Ну так и что, если сделать просто htmlspecialchars то он так и выдает "Привет"
А где кавычки?
PM MAIL ICQ   Вверх
Mal Hack
Дата 17.2.2005, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



А зачем мучаться.. mysql_escape_string();
PM ICQ   Вверх
Irokez
Дата 17.2.2005, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



PHP-Script htmlspecialchars() надо применять только один раз - либо при добавлению в базу, либо при выводе из базы, тогда все будет нормально выводиться, HTML сам заменит " на кавычки
PM   Вверх
Mal Hack
Дата 17.2.2005, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Irokez
А зачем применять htmlspecialchars(), обясните мне...
PM ICQ   Вверх
Irokez
Дата 17.2.2005, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



Цитата(Mal @ 17.2.2005, 21:39)
Irokez
А зачем применять htmlspecialchars(), обясните мне...

Цитата

PHP-Script:
Я использую 2 команды:
1)addslashes
2)htmlspecialchars

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


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


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

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



Цитата
А зачем мучаться.. mysql_escape_string();


Подожди, эту команду нужно применять при выводе из базы или вводе?

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


Опытный
**


Профиль
Группа: Vingrad developer
Сообщений: 274
Регистрация: 13.11.2004
Где: Altay

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



Ты читал тему на которую я давал ссылку smile

Цитата
Подожди, эту команду нужно применять при выводе из базы или вводе?

При вводе...


--------------------
"Если однажды Вдруг
Меня не окажется вовсе
в заповедной заветной тарелке
Твоего праведного сновидения
Знай - Неуловимые мстители настигли меня."
© Егор Летов
PM MAIL ICQ   Вверх
Mal Hack
Дата 18.2.2005, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Irokez ну хорошо...
Имеем на входе: "Тест".
После этих двух функций получим \"Тест\"
И как ты будешь искать строку в Бд такую? Когда там обычно хранится \"Тест\".

Цитата(PHP @ 17.2.2005, 22:59)
Подожди, эту команду нужно применять при выводе из базы или вводе?

Эту надо в mysql_query, к примеру:
mysql_query( "SELECT `*` FROM `table` WHERE `name` = '' . mysql_escape_string( $_POST['name'] ) . '' LIMIT 1" )
PM ICQ   Вверх
Irokez
Дата 18.2.2005, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



2 Mal Hack
я всего лишь ответил на вопрос, почему stripslashes() не удалял проескейпенные кавычки
PM   Вверх
IZ@TOP
Дата 19.2.2005, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Цитата(Irokez @ 18.2.2005, 20:34)
всего лишь ответил на вопрос, почему stripslashes() не удалял проескейпенные кавычки

Потому что эта функция не предназначена для удаления кавычек, а предназначена для удаления экранирования, т.е. слешей.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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