game/modules_data/moder/uselogin.php

145 lines
6.1 KiB
PHP
Raw Normal View History

2023-03-31 18:42:06 +00:00
<?php
2022-06-06 21:30:34 +00:00
if(!defined('GAME'))
{
die();
}
if($p['nick']==1)
{
$uu = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `login` = "'.mysql_real_escape_string($_POST['logingo']).'" LIMIT 1'));
if(isset($uu['id']))
{
if($uu['align']>1 && $uu['align']<2 && $u->info['admin']==0)
{
2023-01-10 16:29:32 +00:00
$uer = 'Вы не можете использовать данное заклятие на Паладинов.<br>';
2022-06-06 21:30:34 +00:00
}elseif($uu['align']>3 && $uu['align']<4 && $u->info['admin']==0)
{
2023-01-10 16:29:32 +00:00
$uer = 'Вы не можете использовать данное заклятие на Тарманов.<br>';
2022-06-06 21:30:34 +00:00
}elseif($uu['battle']>0)
{
2023-01-10 16:29:32 +00:00
$uer = 'Персонаж находится в поединке.<br>';
2022-06-06 21:30:34 +00:00
}elseif($uu['admin']>0 && $u->info['admin']==0)
{
2023-01-10 16:29:32 +00:00
$uer = 'Вы не можете накладывать снятие запрета передач на Ангелов';
2022-06-06 21:30:34 +00:00
}elseif($uu['city']!=$u->info['city'] && $p['citym1']==0){
2023-01-10 16:29:32 +00:00
$uer = 'Персонаж находится в другом городе';
2022-06-06 21:30:34 +00:00
}elseif($uu['id']==$u->info['id'] && $u->info['admin']==0){
2023-01-10 16:29:32 +00:00
$uer = 'Вы не можете сменить логин самому себе';
2022-06-06 21:30:34 +00:00
}else{
function en_ru($txt)
{
$g = false;
$en = preg_match("/^(([a-zA-Z _-])+)$/i", $txt);
2023-01-10 16:29:32 +00:00
$ru = preg_match("/^(([а-яА-Я _-])+)$/i", $txt);
2022-06-06 21:30:34 +00:00
if(($ru && $en) || (!$ru && !$en))
{
$g = true;
}
return $g;
}
function test_login($login,$test) {
$r = false;
2023-01-10 16:29:32 +00:00
$blacklist = "!@#$%^&*()\+Ёё|/'`\"";
$sr = '_-йцукенгшщзхъфывапролджэячсмитьбюё1234567890';
2022-06-06 21:30:34 +00:00
$i = 0;
while($i<count($nologin))
{
if(preg_match("/".$nologin[$i]."/i",$filter->mystr($login)))
{
2023-01-10 16:29:32 +00:00
$error = 'Выберите, пожалуйста, другой ник.'; $_POST['step'] = 1; $i = count($nologin);
2022-06-06 21:30:34 +00:00
}
$i++;
}
$login = str_replace(' ',' ',$login);
2023-01-10 16:29:32 +00:00
//Логин от 2 до 20 символов
2022-06-06 21:30:34 +00:00
if(strlen($login)>20)
{
2023-01-10 16:29:32 +00:00
$error = 'Логин должен содержать не более 20 символов.'; $_POST['step'] = 1;
2022-06-06 21:30:34 +00:00
}
if(strlen($login)<2)
{
2023-01-10 16:29:32 +00:00
$error = 'Логин должен содержать не менее 2 символов.'; $_POST['step'] = 1;
2022-06-06 21:30:34 +00:00
}
2023-01-10 16:29:32 +00:00
//Один алфавит
2022-06-06 21:30:34 +00:00
$er = en_ru($login);
if($er==true)
{
2023-01-10 16:29:32 +00:00
$error = 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.'; $_POST['step'] = 1;
2022-06-06 21:30:34 +00:00
}
2023-01-10 16:29:32 +00:00
//Запрещенный символы
2022-06-06 21:30:34 +00:00
if(strpos($sr,$login))
{
2023-01-10 16:29:32 +00:00
$error = 'Логин содержит запрещенные символы.'; $_POST['step'] = 1;
2022-06-06 21:30:34 +00:00
}
2023-01-10 16:29:32 +00:00
//Персонажи в базе
2022-06-06 21:30:34 +00:00
$log = mysql_fetch_array(mysql_query('SELECT `id` from `users` where `login`="'.mysql_real_escape_string($login).'" LIMIT 1'));
$log2 = mysql_fetch_array(mysql_query('SELECT `id` from `lastNames` where `login`="'.mysql_real_escape_string($login).'" LIMIT 1'));
if(isset($log['id']) || isset($log2['id']))
{
2023-01-10 16:29:32 +00:00
$error = 'Логин '.$login.' уже занят, выберите другой.'; $_POST['step'] = 1;
2022-06-06 21:30:34 +00:00
}
2023-01-10 16:29:32 +00:00
//Разделители
2022-06-06 21:30:34 +00:00
if(substr_count($login,' ')+substr_count($login,'-')+substr_count($login,'_')>2)
{
2023-01-10 16:29:32 +00:00
$error = 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).'; $_POST['step'] = 1;
2022-06-06 21:30:34 +00:00
}
$login = trim($login,' ');
if($error != '') {
$r = $error;
}else{
$r = 'good';
}
if( $test == true ) {
}else{
$r = $login;
}
return $r;
}
$uu['login_new'] = $_POST['logingo2'];
if(test_login($uu['login_new'],true) == 'good') {
2023-01-10 16:29:32 +00:00
$uer = 'Вы успешно сменили логин';
2022-06-06 21:30:34 +00:00
$uu['login_last'] = $uu['login'];
$uu['login'] = test_login($uu['login_new'],false);
$upd = mysql_query('UPDATE `users` SET `login` = "'.$uu['login'].'" WHERE `id` = "'.$uu['id'].'" LIMIT 1');
if($upd)
{
$sp = mysql_query('SELECT * FROM `items_users` WHERE `data` LIKE "%sudba='.mysql_real_escape_string($uu['login_last']).'%"');
while( $pl = mysql_fetch_array($sp) ) {
$pl['data'] = str_replace('sudba='.$uu['login_last'].'','sudba='.$uu['login'].'',$pl['data']);
mysql_query('UPDATE `items_users` SET `data` = "'.$pl['data'].'" WHERE `id` = "'.$pl['id'].'" LIMIT 1');
}
$sx = '';
if($u->info['sex']==1)
{
2023-01-10 16:29:32 +00:00
$sx = 'а';
2022-06-06 21:30:34 +00:00
}
2023-01-10 16:29:32 +00:00
$rtxt = '[img[items/nick.gif]] '.$rang.' &quot;'.$u->info['cast_login'].'&quot; сменил'.$sx.' логин персонажа &quot;'.$uu['login_last'].'&quot; на &quot;'.$uu['login'].'&quot;';
2023-01-28 02:24:37 +00:00
$cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']);
$cmsg->setText($rtxt);
$cmsg->setType(6);
$cmsg->setTypeTime(1);
(new Chat())->sendMsg($cmsg);
2023-01-10 16:29:32 +00:00
$rtxt = $rang.' &quot;'.$u->info['login'].'&quot; сменил'.$sx.' логин сперсонажа с &quot;'.$uu['login_last'].'&quot; на &quot;'.$uu['login'].'&quot;.';
2022-06-06 21:30:34 +00:00
mysql_query("INSERT INTO `users_delo` (`uid`,`ip`,`city`,`time`,`text`,`login`,`type`) VALUES ('".$uu['id']."','".$_SERVER['REMOTE_ADDR']."','".$u->info['city']."','".time()."','".$rtxt."','".$u->info['login']."',0)");
2023-01-10 16:29:32 +00:00
$uer = 'Вы успешно сменили логин персонажа &quot;'.$uu['login_last'].'&quot; на '.$uu['login'].'.';
2022-06-06 21:30:34 +00:00
mysql_query('INSERT INTO `lastnames` (`uid`,`login`,`newlogin`,`time`) VALUES (
"'.$uu['id'].'","'.$uu['login_last'].'","'.$uu['login'].'","'.time().'"
)');
}else{
2023-01-10 16:29:32 +00:00
$uer = 'Не удалось использовать данное заклятие';
2022-06-06 21:30:34 +00:00
}
}else{
2023-01-10 16:29:32 +00:00
$uer = 'Не удалось сменить логин: '.test_login($uu['login_new']);
2022-06-06 21:30:34 +00:00
}
}
}else{
2023-01-10 16:29:32 +00:00
$uer = 'Персонаж не найден в этом городе';
2022-06-06 21:30:34 +00:00
}
}else{
2023-01-10 16:29:32 +00:00
$uer = 'У Вас нет прав на использование данного заклятия';
2022-06-06 21:30:34 +00:00
}
?>