[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: stripslashes и htmlspecialchars
kuzroman
stripslashes и htmlspecialchars
защищают нашу базу от скриптов злоумышленников.

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

SELECT * FROM obiekt WHERE  firma = '$vibor_firm'


Так в нем поле firma (тип TEXT) содержит название фирм.

Если оператор ввел название без кавычек например: Мосстрой то выборка проходит успешно.

А если оператор ввел "Мосстрой" то в базу соответственно занеслось

"Мосстрой"
И тут уже выборка не происходит.

Подскажите как сделать правильно выборку в данном случае?



Спустя 1 минута, 5 секунд (25.06.2010 - 13:00) kuzroman написал(а):
"Мосстрой"
А & q u o t ; Мосстрой"

Спустя 31 секунда (25.06.2010 - 13:01) kuzroman написал(а):
не
 "Мосстрой"
а
"Мосстрой"

Спустя 4 минуты, 28 секунд (25.06.2010 - 13:05) Lenarfate написал(а):
mysql_real_escape_string ?

Спустя 4 минуты, 43 секунды (25.06.2010 - 13:10) kuzroman написал(а):
Можно пояснить?
Цитата (Lenarfate @ 25.06.2010 - 10:05)
mysql_real_escape_string ?


Что конкретно вы имели ввиду?
потому что я понял так:
вместо: mysql_query
поставить: mysql_real_escape_string
что в моем случае не работает.
Я же как новичек спрашиваю вас)

Спустя 4 минуты, 14 секунд (25.06.2010 - 13:14) tomash написал(а):
Функция экранирует специальные символы строки unescaped_string, принимая во внимание кодировку соединения, таким образом, что результат можно безопасно использовать в SQL-запросе в функци mysql_query().

Спустя 57 секунд (25.06.2010 - 13:15) Lenarfate написал(а):
http://php.su/functions/?mysql_real_escape_string
учитесь пользоваться мануалом

Спустя 37 секунд (25.06.2010 - 13:16) Lenarfate написал(а):
tomash
не надо было говорить, он должен был сам найти))

Спустя 2 минуты, 15 секунд (25.06.2010 - 13:18) twin написал(а):
Цитата
stripslashes и htmlspecialchars
защищают нашу базу от скриптов злоумышленников.

Угу. А так же защищают от воров телевизор и туалетная бумага...

Спустя 1 минута, 54 секунды (25.06.2010 - 13:20) kuzroman написал(а):
В таком случае почуму у меня запрос:
mysql_query ("SELECT * FROM obiekt WHERE  firma = '$vibor_firm' ",$db);


не работает только когда в базе находится информация типа
$vibor_firm = "Мосстрой"

а
$vibor_firm = Мосстрой
работает прекрасно?

Да и что мне делать? избавиться от экранирования во время занесения информации в базу или писать скрипт убирающий экран?

Спустя 1 минута, 59 секунд (25.06.2010 - 13:22) Lenarfate написал(а):
а ты пробуй, и так и так. там и ответ найдется

Спустя 5 минут, 12 секунд (25.06.2010 - 13:27) tomash написал(а):
Lenarfate
Порыв))))
kuzroman
http://phpforum.ru/index.php?showtopic=21213

Спустя 2 минуты (25.06.2010 - 13:29) kuzroman написал(а):
Вы лучше подскажите как мне от
"
избавиться?

потому что в базе у меня хранится инвфа вроде
"Мосстрой"

Спустя 1 минута, 26 секунд (25.06.2010 - 13:30) tomash написал(а):
kuzroman
Прежде чем использовать функцию, прочитайте что она делает и 98,3% вопросов отпадут

Спустя 3 минуты, 31 секунда (25.06.2010 - 13:34) kuzroman написал(а):
Цитата (tomash @ 25.06.2010 - 10:30)
kuzroman
Прежде чем использовать функцию, прочитайте что она делает и 98,3% вопросов отпадут

Вы про какую функцию сейчас говорите?
Про mysql_real_escape_string?

Спустя 1 минута, 37 секунд (25.06.2010 - 13:36) Lenarfate написал(а):
Цитата (tomash @ 25.06.2010 - 14:27)
kuzroman
http://phpforum.ru/index.php?showtopic=21213

чувак, просто почитай то, что тебе посоветовали)

Спустя 23 секунды (25.06.2010 - 13:36) tomash написал(а):
kuzroman
Обо всех функциях которые используються в коде

Спустя 22 минуты, 50 секунд (25.06.2010 - 13:59) seine написал(а):
Цитата (tomash @ 25.06.2010 - 10:30)
98,3% вопросов отпадут


Откуда такая точность? smile.gif

kuzroman, я не понял, у тебя в базе хранятся записи типа "Мосстрой" , а ты хочешь чтоб там хранилось просто Мосстрой?
Если так, то при добавлении в базу удаляй кавычки и всего делов. Или я что-то не так понял?

Спустя 6 минут, 52 секунды (25.06.2010 - 14:06) tomash написал(а):
seineу

Цитата (seine @ 25.06.2010 - 10:59)
Цитата (tomash @ 25.06.2010 - 10:30)
98,3% вопросов отпадут


Откуда такая точность? smile.gif


Установлено опытным путем)

Спустя 2 минуты, 37 секунд (25.06.2010 - 14:08) kuzroman написал(а):
Как говорится клин клином вышибают помогло:

$firm=$_POST['vibor_firm'];

$vibor_firm = htmlspecialchars($firm);


$result3 = mysql_query("SELECT * FROM obiekt
WHERE firma = '$vibor_firm' ",$db);


)))

Спустя 1 минута, 31 секунда (25.06.2010 - 14:10) Lenarfate написал(а):
ты читал вообще? blink.gif еще раз на бис
Цитата
kuzroman
http://phpforum.ru/index.php?showtopic=21213


Спустя 17 минут, 10 секунд (25.06.2010 - 14:27) tomash написал(а):
Lenarfate
Ужоснах! Откуда они приходят?

Спустя 50 секунд (25.06.2010 - 14:28) Lenarfate написал(а):
кто приходит biggrin.gif

Спустя 9 минут, 29 секунд (25.06.2010 - 14:37) tomash написал(а):
Lenarfate
Пришел, спросил, получил ответ, сделал неправильно по-своему и доволен

Спустя 4 минуты, 45 секунд (25.06.2010 - 14:42) Lenarfate написал(а):
а!ыгы biggrin.gif

Спустя 2 дня, 19 часов, 30 минут, 30 секунд (28.06.2010 - 10:13) kuzroman написал(а):
Да спасибо гуру, сижу и оптекаю весь)
Вы уж извините, может просто у меня получается чаще отвечать на вопрос, после ее постановки на форуме)

Ну сделал и сделал, все равно всем спасибо.

Спустя 14 минут, 25 секунд (28.06.2010 - 10:27) tomash написал(а):
kuzroman
Неправильно ответил)))) функция htmlspecialchars не защищает от атак! Она скорее предназначена для корректного вывода!

Для защиты используют mysql_real_escape_string, ограничение количества символов для ввода, проверка регулярными выражениями! ))) и т.д. и т.п


_____________
kuzroman@list.ru
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.