2022-06-06 21:30:34 +00:00
|
|
|
|
<?php
|
2023-04-15 19:18:30 +00:00
|
|
|
|
//Вызывается из ekr.php
|
|
|
|
|
define('GAME', true);
|
2022-06-06 21:30:34 +00:00
|
|
|
|
include_once('_incl_data/__config.php');
|
|
|
|
|
include_once('_incl_data/class/__db_connect.php');
|
|
|
|
|
|
2023-04-15 19:18:30 +00:00
|
|
|
|
if (!isset($_GET['login'])) {
|
|
|
|
|
return;
|
|
|
|
|
}//
|
|
|
|
|
$_GET['login'] = htmlspecialchars($_GET['login'], null);
|
|
|
|
|
//
|
|
|
|
|
$bad = [
|
|
|
|
|
'Мусорщик' => 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;
|
2022-06-06 21:30:34 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-04-15 19:18:30 +00:00
|
|
|
|
//
|
|
|
|
|
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 '<b style="color:red">Логин занят.</b>';
|
|
|
|
|
} 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 '<b style="color:red">Неверный логин.</b>';
|
|
|
|
|
} else {
|
|
|
|
|
echo '<b style="color:green">Логин свободен!</b>';
|
|
|
|
|
}
|
|
|
|
|
}
|