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): bool { $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 = 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 = false; } elseif (en_ru(str_replace('ё', 'е', str_replace('Ё', 'Е', $_GET['login'])))) { $true = false; } // if (!$true) { echo 'Неверный логин.'; } else { echo 'Логин свободен!'; } }