Нужно чтобы ник на сайте был только из букв, символов _-+= и пробела, а также чтобы не смешивались буквы латиницы и кириллицы, вроде с последним разобрался( preg_match("#[a-z]+#i", $_POST[name]) && preg_match("#[а-я]+#i", $_POST[name]) ), а вот с тем, чтобы другие символы кроме описанных выше в нике только были я прям понять не могу что сделать.
Спустя 19 часов, 31 минута, 11 секунд (29.01.2010 - 12:28) VoLk88 написал(а):
делов на минуту, просто колом я(
Спустя 10 минут (29.01.2010 - 12:38) DedMorozzz написал(а):
[a-zA-ZА-Яа-я_-+= ]+ и собсно всё
Спустя 2 минуты, 54 секунды (29.01.2010 - 12:41) twin написал(а):
<?php
if(!preg_match("#^[a-z_+=-]|[а-яё_+=-]+$#i", $_POST['name']))
echo 'no';
else
echo 'yes';
Спустя 2 минуты, 54 секунды (29.01.2010 - 12:44) DedMorozzz написал(а):
А поечему без больших букв? И в промежуток "а-я" буква ё не входит?
Спустя 2 минуты, 45 секунд (29.01.2010 - 12:47) VoLk88 написал(а):
Цитата (DedMorozzz @ 29.01.2010 - 18:38) |
[a-zA-ZА-Яа-я_-+= ]+ и собсно всё |
Срабатывает, но выскакивает это:
Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 15 in Z:\home\besit.org.ru\www\registration.php on line 98
Спустя 1 минута, 1 секунда (29.01.2010 - 12:48) VoLk88 написал(а):
Цитата (twin @ 29.01.2010 - 18:41) |
<?php |
пропустил name!name
Спустя 1 минута, 8 секунд (29.01.2010 - 12:49) DedMorozzz написал(а):
значит пробел надо как-то иначе записать. Ща поищу
Спустя 2 минуты, 59 секунд (29.01.2010 - 12:52) VoLk88 написал(а):
elseif (!preg_match("#[a-zA-ZА-Яа-я_-+= ]+#", $_POST['name']))
{
echo "<font color=ff0000>В нике недопустимый символ!</font>";
}
вот как я записываю
Спустя 39 секунд (29.01.2010 - 12:52) DedMorozzz написал(а):
[a-zA-Z_-+=\s]+[А-Яа-я_-+=\s]+ а так?
Спустя 2 минуты, 21 секунда (29.01.2010 - 12:55) VoLk88 написал(а):
Цитата (DedMorozzz @ 29.01.2010 - 18:52) |
[a-zA-Z_-+=\s]+[А-Яа-я_-+=\s]+ а так? |
Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 9 in Z:\home\besit.org.ru\www\registration.php on line 98
Спустя 6 минут, 3 секунды (29.01.2010 - 13:01) twin написал(а):
DedMorozzz
Там стит модификатор i, а значит регистр игнрируется. Буква Ё не входит в диапазон. С ней вообще веселая история. Она и в кодировках на последнем месте, после Я.
Дефис не на месте, потому и варнинг.
Хотя я тоже поспешил. Вот так надо:
Там стит модификатор i, а значит регистр игнрируется. Буква Ё не входит в диапазон. С ней вообще веселая история. Она и в кодировках на последнем месте, после Я.
Дефис не на месте, потому и варнинг.
Хотя я тоже поспешил. Вот так надо:
<?php
if(!preg_match("#^[a-z_+=-\s]+$|^[а-яё_+=-\s]+$#iu", $_POST['name']))
echo 'no';
else
echo 'yes';
Спустя 5 минут, 25 секунд (29.01.2010 - 13:06) DedMorozzz написал(а):
в кодировке аски ll всё идёт с верхнего до нижнего регистра. скорее всего этот варнинг из-за тог очто снач описан нижний, далее верхний регистр, но как-то глупо это... попробуй "[A-Za-z_-+=\s]+[А-Яа-я_-+=\s]+" или "[A-z_-+=\s]+[А-я_-+=\s]+"
Что не так с дифисом? Кстати мб буква "а" русская, когда должна быть анл.
Что не так с дифисом? Кстати мб буква "а" русская, когда должна быть анл.
Спустя 3 минуты, 16 секунд (29.01.2010 - 13:09) VoLk88 написал(а):
twin
этот вариант помог, спасибо огромное!
DedMorozzz
Спасибо
Мне очень много надо читать, раньше не сталкивался толком, а тут такая запинка. Если время свободное выпадет читать буду)
ещё раз спасибо большое всем, кто откликнулся
этот вариант помог, спасибо огромное!
DedMorozzz
Спасибо
Мне очень много надо читать, раньше не сталкивался толком, а тут такая запинка. Если время свободное выпадет читать буду)
ещё раз спасибо большое всем, кто откликнулся
Спустя 35 минут, 23 секунды (29.01.2010 - 13:45) twin написал(а):
DedMorozzz
Цитата |
Что не так с дифисом? |
[A-Za-z_-+=\s]
получается диапазон. Отсюда и варнинг. Нужно или экранировать дефис или ставить последним.
Спустя 11 минут, 16 секунд (29.01.2010 - 13:56) twin написал(а):
И Ё ты зря игнорируешь. Кодировку я имел ввиду UTF-8, остальные даже за кодировки не считаю. Но она тут не причем. Буква Ё не входит в диапазон для регулярок, можешь проверить на досуге.