|
|
|
| я ограничил регулярными выражениями регистрацию пользователя. и все равно кто-то зарегил ники "­" и "­ ­", хотя амперсанд был запрещен. как такое могло произойти? может быть я выражение неправильно составил?
<?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; };
//......
?>
|
| |
|
|
|
|
|
|
|
для: 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; };
//......
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(29.10.2005 в 00:14)
| | я уже так пробовал, но у меня этот модификатор на хостинге почему-то не прет, хотя на локалке все нормально. спасибо! | |
|
|
|
|
|
|
|
для: 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;
}
?>
|
Впринципе амперсанд не должен пролезть. Хотя могут быть глюки с кириллицей. | |
|
|
|
|
|
|
|
для: Евгений Петров
(29.10.2005 в 00:19)
| | амперсанд пролез в первом, неправильном варианте. сейчас уже вроде бы не пролезает. спасибо! | |
|
|
|