1, 'Мироздатель' => 1 ); // function en_ru($txt) { $g = false; $en = preg_match("/^(([0-9a-zA-Z _-])+)$/i", $txt); $ru = preg_match("/^(([0-9а-яА-Я _-])+)$/i", $txt); if(($ru && $en) || (!$ru && !$en)) { $g = true; } return $g; } // function testBad($txt) { $white = '-_ 0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёйцукенгшщзхъфывапролджэячсмитьбю'; $r = false; $i = 0; while( $i != -1 ) { if( isset($txt[$i]) ) { $g = false; $j = 0; while( $j != -1 ) { if(isset($white[$j])) { if( $white[$j] == $txt[$i] ) { $g = true; } }else{ $j = -2; } $j++; } if( $g == false ) { $r = true; } }else{ $i = -2; } $i++; } return $r; } // $login = mysql_fetch_array(mysql_query('SELECT `id` FROM `users` WHERE `login` = "'.mysql_real_escape_string($_GET['login']).'" LIMIT 1')); if( isset($login['id']) || isset($bad[$_GET['login']]) ) { echo 'Логин занят.'; }else{ $true = true; // /* Логин может содержать от 4 до 16 символов, и состоять только из букв русского ИЛИ английского алфавита, цифр, символов '_', '-' и пробела. Логин не может начинаться или заканчиваться символами '_', '-' или пробелом. */ // $_GET['login'] = str_replace(' ',' ',$_GET['login']); $_GET['login'] = str_replace('%',' ',$_GET['login']); $_GET['login'] = str_replace(' ',' ',$_GET['login']); // if( strlen($_GET['login']) > 16 ) { $true = false; }elseif( strlen($_GET['login']) < 4 ) { $true = false; }elseif( strripos($_GET['login'],' ') == true ) { $true = false; }elseif( substr($_GET['login'],1) == ' ' || substr($_GET['login'],-1) == ' ' ) { $true = false; }elseif( substr($_GET['login'],1) == '-' || substr($_GET['login'],-1) == '-' ) { $true = false; }elseif( substr($_GET['login'],1) == '_' || substr($_GET['login'],-1) == '_' ) { $true = false; }elseif( testBad($_GET['login']) == true ) { $true = false; }elseif( en_ru(str_replace('ё','е',str_replace('Ё','Е',$_GET['login']))) == true ) { $true = false; } // if( $true == false ) { echo 'Неверный логин.'; }else{ echo 'Логин свободен!'; } } } ?>