define('GAME', true);
include('_incl_data/__config.php');
include('_incl_data/class/__db_connect.php');
include('_incl_data/class/__chat_class.php');
include('_incl_data/class/__filter_class.php');
require_once '_incl_data/mails.php';
function getIp()
{
$keys = [
'HTTP_CLIENT_IP',
'HTTP_X_FORWARDED_FOR',
'REMOTE_ADDR'
];
foreach ($keys as $key) {
if (!empty($_SERVER[$key])) {
$iparr = explode(',', $_SERVER[$key]);
$ip = trim(end($iparr));
if (filter_var($ip, FILTER_VALIDATE_IP)) {
return $ip;
}
}
}
}
function add_effn($uid, $id)
{
$g = [0 => 0, 1 => ''];
$eff = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "' . $id . '" LIMIT 1'));
if (isset($eff['id2'])) {
$n = $eff['mname'];
$d = $eff['mdata'];
$ins = mysql_query('INSERT INTO `eff_users` (`overType`,`id_eff`,`uid`,`name`,`timeUse`,`data`) VALUES ("' . $eff['oneType'] . '","' . $eff['id2'] . '","' . $uid . '","' . $n . '","' . time() . '","' . $d . '")');
if ($ins) {
$g[0] = 1;
$g[1] = '...';
}
}
return $g;
}
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 hasGoodCode($code, $email)
{
$q = 'select 1 from secure_code where `code` = %d and email = %s order by id desc limit 1';
$check = mysql_fetch_row(mysql_query(sprintf($q, (int)$code, $email)));
if ($check[0] !== 1) {
return 'Неверный код безопасности (Проверте пробелы и сам код в последнем емеиле)';
}
return 1;
}
function error_check($id, $str_u, $name = 0)
{
//***************************************************
session_start();
$error = '';
if ($id == 1 && !empty($str_u)) // Проверка логина
{
$nologin = [0 => 'ангел', 1 => 'angel', 2 => 'администрация', 3 => 'administration', 4 => 'Комментатор', 5 => 'Мироздатель', 6 => 'Мусорщик', 7 => 'Падальщик', 8 => 'Повелитель', 9 => 'Архивариус', 10 => 'Пересмешник', 11 => 'Волынщик', 12 => 'Лорд Разрушитель', 13 => 'Милосердие', 14 => 'Справедливость', 15 => 'Искушение', 16 => 'Вознесение'];
$i = 0;
while ($i < count($nologin)) {
if (preg_match("/" . $nologin[$i] . "/i", $str_u)) {
$error = 'Выберите, пожалуйста, другой ник.';
$i = count($nologin);
}
$i++;
}
$str_u = str_replace(' ', ' ', $str_u);
//Логин от 4 до 20 символов
if (strlen($str_u) > 20) {
$error = 'Логин должен содержать не более 20 символов.';
$error = $error . '
Пример правильного никнейма: Петя Убиватор, Коля, xalop.
Пример неправильного никнейма: )))), kolя)=-/.';
}
if (strlen($str_u) < 4) {
$error = 'Логин должен содержать не менее 4 символов.';
$error = $error . '
Пример правильного никнейма: Петя Убиватор, Коля, xalop.
Пример неправильного никнейма: )))), kolя)=-/.';
}
//Один алфавит
$er = en_ru($str_u);
if ($er) {
$error = 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.';
$error = $error . '
Пример правильного никнейма: Петя Убиватор, Коля, xalop.
Пример неправильного никнейма: )))), kolя)=-/.';
}
//Разделители
if (substr_count($str_u, ' ') + substr_count($str_u, '-') + substr_count($str_u, '_') > 2) {
$error = 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).';
$error = $error . '
Пример правильного никнейма: Петя Убиватор, Коля, xalop.
Пример неправильного никнейма: )))), kolя)=-/.';
}
//Персонажи в базе
$q = mysql_query('SELECT `id` from `users` where `login`="' . mysql_real_escape_string($str_u) . '" LIMIT 1');
if ($q) {
$log = mysql_fetch_array($q);
unset($q);
}
$q = mysql_query('SELECT `id` from `lastnames` where `login`="' . mysql_real_escape_string($str_u) . '" LIMIT 1');
if ($q) {
$log2 = mysql_fetch_array($q);
unset($q);
}
if (isset($log['id']) || isset($log2['id'])) {
$error = 'Логин ' . $str_u . ' уже занят, выберите другой.';
}
}
if ($id == 2 && !empty($str_u)) //проверка емаила
{
if (strlen($str_u) < 6 || strlen($str_u) > 50) {
$error = 'E-mail не может быть короче 6-х символов и длинее 50-ти.';
} else {
$testEREm = mysql_fetch_array(mysql_query('SELECT `mail` FROM `users` WHERE `mail` LIKE "' . $str_u . '" LIMIT 1'));
$emails = mysql_fetch_array(mysql_query('SELECT * FROM `ban_email` WHERE `email` LIKE "' . $str_u . '" LIMIT 1'));
if (isset($testEREm['mail'])) {
$error = 'E-mail уже занят.';
}
if (isset($emails['email'])) {
$error = 'E-mail заблокирован свяжитесь с Администрацией.';
}
$x = 1;
$i = 1;
$tx = '
Возможно использовать только сервисы почты:
';
$sp = mysql_query('SELECT * FROM `trust_email`');
while ($pl = mysql_fetch_array($sp)) {
$emailtest = $pl['email'];
if (!preg_match("/" . $emailtest . "/i", $str_u)) {
$i++;
}
$tx = $tx . $pl['email'] . ' ';
$x++;
}
if ($i == $x) {
$error = 'Данный почтовый сервис использовать нельзя.' . $tx;
}
}
if (!preg_match('#^[a-z0-9.!\#$%&\'*+-/=?^_`{|}~]+@([0-9.]+|([^\s]+\.+[a-z]{2,6}))$#si', $str_u)) {
$error = 'Вы указали явно ошибочный E-mail.
';
}
if ($error != '') {
$gd[4] = $error;
$good = 0;
} else {
$gd[4] = 1;
}
}
if ($id == 3 && !empty($str_u) && !empty($name)) //отсылка емаила при удачном емаиле str_u -> mail name -> nickname
{
$code = rand(10000000, 99999999);
mysql_query('INSERT INTO `secure_code`(`email`, `code`, `time`) VALUES ("' . $str_u . '","' . $code . '","' . time() . '");');
mails($str_u, 'Секретный Код: ' . $code, 'Секретный Код - Новый Бойцовский Клуб ' . $name);
}
if ($id == 4 && !empty($str_u) && !empty($name)) //проверка кода безопасности str_u -> введенный код name -> email
{
$testcode = mysql_fetch_array(mysql_query('SELECT code FROM `secure_code` WHERE `email` = "' . $name . '" ORDER BY id DESC LIMIT 1'));
if ($testcode['code'] != $str_u) {
$error = 'Неверный код безопасности (Проверте пробелы и сам код в последнем емеиле)';
}
}
if ($id == 5 && !empty($str_u) && !empty($name)) //проверка пароля str_u -> p1 код name -> p2
{
if (strlen($str_u) < 8 || strlen($str_u) > 30) {
$error = 'Длина пароля не может быть меньше 8 символов или более 30 символов.';
$error = $error . '
Пример правильного пароля: Parol228, Kotik111, Pswerd112.
Пример неправильного пароля: parol228, kotik.';
}
if ($str_u != $name) {
$error = 'В анкете пароль нужно ввести дважды, для проверки. Во второй раз вы его ввели неверно, будьте внимательнее.';
$error = $error . '
Пример правильного пароля: Parol228, Kotik111, Pswerd112.
Пример неправильного пароля: parol228, kotik.';
}
if (!preg_match('/[a-zа-я]+/', $str_u)) {
$error = 'Пароль не содержит букв нижнего регитра а..я/a..z.';
$error = $error . '
Пример правильного пароля: Parol228, Kotik111, Pswerd112.
Пример неправильного пароля: parol228, kotik.';
} elseif (!preg_match('/[A-ZА-Я]+/', $str_u)) {
$error = 'Пароль не содержит букв верхнего регитра А..Я/A..Z .';
$error = $error . '
Пример правильного пароля: Parol228, Kotik111, Pswerd112.
Пример неправильного пароля: parol228, kotik.';
} else {
if (!preg_match('/[0-9]+/', $str_u)) {
$error = 'Пароль не содержит цифр.';
$error = $error . '
Пример правильного пароля: Parol228, Kotik111, Pswerd112.
Пример неправильного пароля: parol228, kotik.';
}
}
}
//***************************************************
return $error ? '