Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: защита от SQL инъекций через регулярные выражения
 
 автор: larush2   (06.04.2012 в 10:58)   письмо автору
 
 

Привет всем !
Я не специалист в регулярных выражениях, прошу помощи у сообщества. Идея в том чтобы заменить в GET, POST параметрах английские буквы, входящие в ключевые слова на похожие русские. Хочу сохранить написание слов, ведь пользователь может написать другому "Нажми кнопку delete", поэтому и задумал реализовать этот вариант с подменой
Например (русские буквы выделены жирным):
select delete drop or where
т.е. нужно заменить английские буквы ОРЕАТ на русские аналоги. Думаю что регулярные выражения как раз и помогут , но не знаю как.

  Ответить  
 
 автор: Sfinks   (06.04.2012 в 11:51)   письмо автору
 
   для: larush2   (06.04.2012 в 10:58)
 

РВ тут не нужны. Такую подмену можно осуществить функцией strtr():
<?
  $text 
"element";  // редактируемый текст
  
$from "en";       // латинские буквы которые заменить
  
$to   "еп";       // русские буквы на которые заменить
  
echo strtr$text $from $to ); // результат: еlеmепt

  Ответить  
 
 автор: larush2   (06.04.2012 в 13:21)   письмо автору
 
   для: Sfinks   (06.04.2012 в 11:51)
 

Спасибо, буду пробовать

  Ответить  
 
 автор: larush2   (09.04.2012 в 09:51)   письмо автору
 
   для: larush2   (06.04.2012 в 13:21)
 

что-то с кодировкой... страница на которой написаны команды в UTF8, страница в браузере определена так же, а на экране русские буквы заменены квадратами. В чем может быть проблема ?

  Ответить  
 
 автор: Sfinks   (09.04.2012 в 11:39)   письмо автору
 
   для: larush2   (09.04.2012 в 09:51)
 

С utf8 посложнее. Дело в том, что strtr() в том виде, как я написал работает с односимвольными строками. А utf8 - многосимвольная кодировка. Но есть второй вариант ее использования. В нем вместо $from и $to передается ассоциативный массив заменяемых пар, где ключ элемента массива - это from, а значение - это to:
<?
$replace 
= array(
  
"A" => "А",
  
"B" => "В",
  
"C" => "С",
  
"E" => "Е",
);
при кодировке utf8 нужно использовать этот вариант.
<?
  
echo strtr$text $replace );

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования