Проверка на корректность логина

Печать RSS
368

Н
Автор
Пришелец
0
Вот проверяю логин на корректность, чето не верно,,. Всеровно пропускает разные символы... :-), тоесть логин должен быть русским или английским с цифрами и без спец символов
вот код: в чем ошибка?

<?php
session_start();
$login='Рускийk';
class sintx{
public static $ru;
public static $en;

public static function sintxRu($login){
self::$ru=$login;

if(!preg_match("/^[А-Яа-я0-9]{1,15}$/", self::$ru)){
$_SESSION['errorru']='errorRU';
}
}

public static function sintxEn($login){
self::$en=$login;
if($_SESSION['errorru']==errorRU){
if(!preg_match("/^[A-Za-z0-9]{1,15}$/", self::$en)){
$error='Не коректный логин';
exit();
}
}
}
}
sintx::SintxRu($login);
sintx::SintxEn($login);
?>

KinG`уренок
0
Зачем такие велосипеды???
^([A-Za-z][A-Za-z0-9 ]+|[А-ЩЭ-ЯЁа-щэ-яё][А-ЯЁа-яё0-9 ]+)$

Чатланин
0
Автор,попробуй preg_match_all и без русских букв.
N

Эцилопп сией тентуры
0
3. LETGAM, аху.......ть! нахрена?
Тут что, текст в 1000 символов?)))))))
З.ы
<?php
preg_match('#[^0-9а-Я0-9]#u', self::$en)
Изменил: Nu3oN (04.12.2012 / 03:53)
П

Пацак
0
"логин должен быть русским или английским с цифрами и без спец символов" -
<?php preg_match('/^(?:[a-z0-9]{1,15}|[а-яё0-9]{1,15})$/iu', $login); ?>
Изменил: Петр (04.12.2012 / 08:54)

Чатланин
0
Какой вообще смысл делать это классом?
H

Пришелец
0
[А-Яа-я0-9] не будет работать без русской локали
<? if(!preg_match("/^[А-Яа-я0-9]{1,15}$/", self::$ru)) ?>

Нужно заменить на:
<? if(!preg_match("/^[".chr(0x7F)."-".chr(0xff)."_-]+$/", self::$ru)) ?>

Добавлено через 00:36 сек.
6. shilo, Ну как это какой, больше нагрузка, это же так прекрасно )
П

Пацак
0
Hermes
[А-Яа-я0-9] не будет работать без русской локали
<? if(!preg_match("/^[А-Яа-я0-9]{1,15}$/", self::$ru)) ?>

Нужно заменить на:
[code]
<? if(!preg_match("/^[".chr(0x7F)."-".chr(0xff)."_-]+$/", self::$ru)) ?>
Интересно, в какой версии PCRE для PHP нет русской локали в UTF-8 - может предпочтительнее использовать эту кодировку? Опять же, промежуток с 0x7F до 0xFF захватывает не только кириллицу, а, например, ±, ®, ›, ћ, ¦, “, ’, §, «, поэтому стоит начинать с 0xC0.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск