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

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

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

 

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

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

тема: кто-то по-прежнему обходит процедуру регистрации
 
 автор: irr   (28.10.2005 в 22:30)   письмо автору
 
 

я ограничил регулярными выражениями регистрацию пользователя. и все равно кто-то зарегил ники "&shy" и "&shy &shy", хотя амперсанд был запрещен. как такое могло произойти? может быть я выражение неправильно составил?


<?php
//......

$lgn=trim(str_replace("\""" "$_POST['lgn']));
$lgn ereg_replace(" +"" "$lgn);

if (!
preg_match("|[a-zA-Zа-яА-Я0-9\.\,\ \_\-\:\(\)]+$|i"$lgn))
{ echo 
'Ошибка при вводе ника.'; exit; };

//......
?>


P.S.: Пардон, уже вижу что неправильно! :(

P.P.S.: Поправил. Сейчас нормально?


<?php
//......
$lgn=trim(ereg_replace(" +"" "$_POST['lgn']));

if (!
preg_match("|^[a-zA-Zа-яА-Я0-9\.\,\ \_\-\:\(\)]+$|"$lgn))
{ echo 
'Ошибка при вводе ника.'; exit; };
//......
?>

   
 
 автор: cheops   (29.10.2005 в 00:14)   письмо автору
 
   для: irr   (28.10.2005 в 22:30)
 

Ага, кстати, можно использовать лишь один регистр, добавив модификатор i
<?php 
//...... 
$lgn=trim(ereg_replace(" +"" "$_POST['lgn'])); 

if (!
preg_match("|^[a-zа-я0-9\.\,\ \_\-\:\(\)]+$|i"$lgn)) 
{ echo 
'Ошибка при вводе ника.'; exit; }; 
//...... 
?>

   
 
 автор: irr   (29.10.2005 в 08:48)   письмо автору
 
   для: cheops   (29.10.2005 в 00:14)
 

я уже так пробовал, но у меня этот модификатор на хостинге почему-то не прет, хотя на локалке все нормально. спасибо!

   
 
 автор: Евгений Петров   (29.10.2005 в 00:19)   письмо автору
 
   для: irr   (28.10.2005 в 22:30)
 

Да нет впринципе правильно было только диапазоны можно было дважды не указывать. И зачем вы так логины ограничиваете? Впринципе если по умному сделать, то можно и не ограничивать, это несложно осуществить. Но в вашем случае я б сделал примерно так:
<?php
$lgn
=trim(ereg_replace(" +"" "$_POST['lgn']));

if(!
preg_match("/^[a-zа-я0-9\., _-:\(\)]+$/i",$lgn))
{
  echo 
"Ошибка при вводе ника.<br>\n"
  exit; 
}
?>

Впринципе амперсанд не должен пролезть. Хотя могут быть глюки с кириллицей.

   
 
 автор: irr   (29.10.2005 в 08:51)   письмо автору
 
   для: Евгений Петров   (29.10.2005 в 00:19)
 

амперсанд пролез в первом, неправильном варианте. сейчас уже вроде бы не пролезает. спасибо!

   
Rambler's Top100
вверх

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