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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> функционал LIKE при сохранении безопасности 
V
    Опции темы
bars80080
Дата 24.11.2009, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Хочу дать возможность пользователю писать формат поиска, который подставляется для текстовых полей после оператора LIKE и RLIKE:

... WHERE `field` LIKE "some"
... WHERE `field` RLIKE "some"

то есть, вот это some. чем обработать приходящую строку, чтобы не получилось ничего более поиска?
хватит ли mysql_real_escape_string()?
но ведь в строке могут быть служебные символы, типа \t и \\

или это уже само по определению всё отдаётся на совесть пользователя?
PM MAIL WWW   Вверх
MoLeX
Дата 24.11.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



Цитата(bars80080 @  24.11.2009,  12:44 Найти цитируемый пост)
или это уже само по определению всё отдаётся на совесть пользователя? 

 smile

Добавлено через 1 минуту и 3 секунды
хотя можно сделать через select


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
bars80080
Дата 24.11.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(MoLeX @  24.11.2009,  13:18 Найти цитируемый пост)
хотя можно сделать через select 

в смысле? этот хвост ... WHERE `field` LIKE "some" - конец запроса select

пользователь сможет править только слово some
PM MAIL WWW   Вверх
MoLeX
Дата 24.11.2009, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

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



тьфу ты. я думал что LIKE

Цитата(bars80080 @  24.11.2009,  12:44 Найти цитируемый пост)
хватит ли mysql_real_escape_string()?

вполне



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
skyboy
Дата 24.11.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(bars80080 @  24.11.2009,  11:44 Найти цитируемый пост)
хватит ли mysql_real_escape_string()?

да.
Цитата(bars80080 @  24.11.2009,  11:44 Найти цитируемый пост)
но ведь в строке могут быть служебные символы, типа \t и \\

ну, и пусть ищет "\t" или два слеша в тексте. mysql_real_escape_string, думаешь, только кавычки проэкранирует?
PM MAIL   Вверх
bars80080
Дата 24.11.2009, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



не, но фиг знает, каковы особенности национального mysql`я
PM MAIL WWW   Вверх
nerezus
Дата 27.11.2009, 02:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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





--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 27.11.2009, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(nerezus @  27.11.2009,  01:41 Найти цитируемый пост)
http://php.net/mysql_real_escape_string 

это уточнение или повторение?

или это
Цитата

mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and \x1a.
 
значит что-то большее, чем сказали вышеговорившие?
PM MAIL WWW   Вверх
Ипатьев
Дата 27.11.2009, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



строго говоря, в лайк надо слешить бэкслеш дважды
только я не очень помню, это для безопасности, или чтобы он не терялся
PM MAIL   Вверх
saveug
Дата 27.11.2009, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я бы порекомендовал делать поиск через FULLTEXT индексы, LIKE сильно тормозит
PM MAIL   Вверх
bars80080
Дата 27.11.2009, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(saveug @  27.11.2009,  10:40 Найти цитируемый пост)
Я бы порекомендовал делать поиск через FULLTEXT индексы, LIKE сильно тормозит 

имеется ввиду прописывать в таблицу индексы?

нет, здесь имеется в виду примитивная фильтрация на базе неожиданно возникшего желания клиента. то есть это не система поиска.

Цитата(Ипатьев @  27.11.2009,  10:38 Найти цитируемый пост)
строго говоря, в лайк надо слешить бэкслеш дважды
только я не очень помню, это для безопасности, или чтобы он не терялся 

ну, вот теперь я опять в загадках. первые два респондента ответили, что всё тип-топ. а с ваших постов я даже не знаю в какую сторону бежать
PM MAIL WWW   Вверх
Ипатьев
Дата 27.11.2009, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



в документацию?
PM MAIL   Вверх
bars80080
Дата 27.11.2009, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



дык, по ссылке nerezus уже сходил. моё понимание дальше не пошло
PM MAIL WWW   Вверх
nerezus
Дата 27.11.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



Цитата

это уточнение или повторение?
 Ито источник ответа.
Там написано, что \ экранируется, а \t нет(и не должен).

Цитата

только я не очень помню, это для безопасности, или чтобы он не терялся
 Чтобы правильно соответствовать данным: \_ \% в запросе вместо _ и % в данных.

Цитата

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


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Ипатьев
Дата 27.11.2009, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



нет, я говорил о бэкслеше, а не о метасимволах
но, кажется, это чтобы он не терялся, так что проблемы большой не будет
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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