Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярное выражение для поиска запрещенных символов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
jugo
Отправлено: 22 Октября, 2013 - 21:45:05
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Окт. 2013  


Помог: 0 раз(а)




Здравствуйте! помогите правильно составить регулярное выражение.
допустимые символы a-z,а-я (любой регистр), '#' '+' ',' '.'
запрещенные символы(пишу через пробел): ~ ` ! @ $ % ^ & * () [] {} <> - _ ; : ' " / \ |
есть код:

PHP:
скопировать код в буфер обмена
  1.  
  2. function language_name()
  3. {
  4.     global $language_name;
  5.     $tmp = $_POST["language_name"];
  6.     $out;
  7.     $pattern; #запрещенные символы
  8.    $pattern2;# доступные символы
  9.  
  10.     if($tmp != NULL)#проверяю установлена ли переменная(isset неочень подходит)
  11.        {
  12.         $tmp = preg_replace('/\s/', '', $tmp);;#spaces in begin&end was deleted
  13.        if(preg_match_all($pattern, $tmp)!=0){$out.="Имеются запрещенные символы! ";}
  14.         else {
  15.               if(preg_match_all($pattern2,$tmp)==0) {$out.="Пустое поле! ";}#если доступные символы не введены
  16.              else{$language_name = $tmp;}
  17.              }
  18.         }
  19.     else { $out.="Пустое поле! "; echo $out;}
  20. }
  21.  
  22.  

помогите составить регулярное выражение для $pattern(запрещенные символы)
и для $pattern2(разрешенные символы)

(Отредактировано автором: 22 Октября, 2013 - 21:53:26)

 
 Top
Саныч
Отправлено: 22 Октября, 2013 - 21:55:29
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Лучше опишите что должна делать ф-ция. Возможно регулярка вобще не нужна будет. Да и сама имеющаяся сейчас ф-ция - откровенная какашка...


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
jugo
Отправлено: 22 Октября, 2013 - 22:00:01
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Окт. 2013  


Помог: 0 раз(а)




Саныч пишет:
Лучше опишите что должна делать ф-ция. Возможно регулярка вобще не нужна будет. Да и сама имеющаяся сейчас ф-ция - откровенная какашка...

Вообщем мне нужно обработать текстовое поле и в случае если:
*поле пустое:выдать сообщение что поле пустое
*если есть запрещенные символы(указанные выше): выдать соответствующее сообщение
*если все нормально ,то текст передается в $language_name ;
А функция =(откровенная какашка) ,потому что всего неделю занимаюсь php ,и как писать функции хорошо,-не знаю)
Все это нужно реализовать только в пхп. вывод сообщения через переменную $out (для меня показался очень удобным)

(Отредактировано автором: 22 Октября, 2013 - 22:03:49)

 
 Top
Саныч
Отправлено: 22 Октября, 2013 - 22:46:54
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




PHP:
скопировать код в буфер обмена
  1. function language_name()
  2. {
  3.     if (empty($_POST["language_name"])) {
  4.         echo 'Пустое поле!';
  5.     } else if (preg_match('#^[\da-z\#\,\.\+а-яё]+$#iu', $_POST["language_name"])) {
  6.         echo 'Все OK!';
  7.     } else {
  8.         echo 'Имеются запрещенные символы!';
  9.     }
  10. }


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
jugo
Отправлено: 22 Октября, 2013 - 22:52:21
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Окт. 2013  


Помог: 0 раз(а)




Саныч пишет:

Спасибо Саныч! очень безопасная и короткая функция получилась,все работает)

(Отредактировано автором: 22 Октября, 2013 - 22:53:24)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB