[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Экранирование поискового запроса
Turboworld1
Здравствуйте!

Задача - нужно убрать из запроса ВСЕ левые символы, оставить нужно только буквы, цифры и пробелы. Достаточно ли будет такой функции для экранирования поискового запроса от всяческих инъекций и прочей нечисти?

P.s. добавил кроме диапазонов букву Ё, т.к. она почему-то тоже вырезалась вместе со спецсимволами ))


function fixer($oldstr) {
$newstr = preg_replace('%[^A-Za-zА-Яа-я0-9ёЁ ]%', '', trim($oldstr));
return $newstr;

};


Или в таком подходе есть какие-нибудь еще "дыры"?
walerus
function fixer($oldstr) {
$newstr = preg_replace('~[^\w\s]_?~u', '', trim( $oldstr ) );

return trim( $newstr );
};
Так короче :)
Turboworld1
Цитата (walerus @ 7.01.2015 - 07:08)
function fixer($oldstr) {
$newstr = preg_replace('~[^\w\s]_?~u', '', trim( $oldstr ) );
 
return trim( $newstr );
};
Так короче  :)

Короче-то оно короче... только в моих глазах выглядит бессмысленным набором символов :blink: :unsure: Не силён я в регулярных выражениях. Вот мой итоговый вариант функции:

function fixer($oldstr) {
$newstr = preg_replace('%[^A-Za-zА-Яа-я0-9ёЁ @\-\_\.]%', '', trim($oldstr));
return $newstr;

};


Я добавил в функцию еще символы @ (собачка), точку, минус и символ подчеркивания. Это чтобы корректно искались адреса электронной почты :)
twin
Ну хотя бы про модификатор i узнай. Все покороче будет)))

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

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