145 lines
6.1 KiB
PHP
145 lines
6.1 KiB
PHP
<?
|
||
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)
|
||
{
|
||
$uer = 'Вы не можете использовать данное заклятие на Паладинов.<br>';
|
||
}elseif($uu['align']>3 && $uu['align']<4 && $u->info['admin']==0)
|
||
{
|
||
$uer = 'Вы не можете использовать данное заклятие на Тарманов.<br>';
|
||
}elseif($uu['battle']>0)
|
||
{
|
||
$uer = 'Персонаж находится в поединке.<br>';
|
||
}elseif($uu['admin']>0 && $u->info['admin']==0)
|
||
{
|
||
$uer = 'Вы не можете накладывать снятие запрета передач на Ангелов';
|
||
}elseif($uu['city']!=$u->info['city'] && $p['citym1']==0){
|
||
$uer = 'Персонаж находится в другом городе';
|
||
}elseif($uu['id']==$u->info['id'] && $u->info['admin']==0){
|
||
$uer = 'Вы не можете сменить логин самому себе';
|
||
}else{
|
||
function en_ru($txt)
|
||
{
|
||
$g = false;
|
||
$en = preg_match("/^(([a-zA-Z _-])+)$/i", $txt);
|
||
$ru = preg_match("/^(([а-яА-Я _-])+)$/i", $txt);
|
||
if(($ru && $en) || (!$ru && !$en))
|
||
{
|
||
$g = true;
|
||
}
|
||
return $g;
|
||
}
|
||
function test_login($login,$test) {
|
||
$r = false;
|
||
$blacklist = "!@#$%^&*()\+Ёё|/'`\"";
|
||
$sr = '_-йцукенгшщзхъфывапролджэячсмитьбюё1234567890';
|
||
$i = 0;
|
||
while($i<count($nologin))
|
||
{
|
||
if(preg_match("/".$nologin[$i]."/i",$filter->mystr($login)))
|
||
{
|
||
$error = 'Выберите, пожалуйста, другой ник.'; $_POST['step'] = 1; $i = count($nologin);
|
||
}
|
||
$i++;
|
||
}
|
||
$login = str_replace(' ',' ',$login);
|
||
//Логин от 2 до 20 символов
|
||
if(strlen($login)>20)
|
||
{
|
||
$error = 'Логин должен содержать не более 20 символов.'; $_POST['step'] = 1;
|
||
}
|
||
if(strlen($login)<2)
|
||
{
|
||
$error = 'Логин должен содержать не менее 2 символов.'; $_POST['step'] = 1;
|
||
}
|
||
//Один алфавит
|
||
$er = en_ru($login);
|
||
if($er==true)
|
||
{
|
||
$error = 'В логине разрешено использовать только буквы одного алфавита русского или английского. Нельзя смешивать.'; $_POST['step'] = 1;
|
||
}
|
||
//Запрещенный символы
|
||
if(strpos($sr,$login))
|
||
{
|
||
$error = 'Логин содержит запрещенные символы.'; $_POST['step'] = 1;
|
||
}
|
||
//Персонажи в базе
|
||
$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']))
|
||
{
|
||
$error = 'Логин '.$login.' уже занят, выберите другой.'; $_POST['step'] = 1;
|
||
}
|
||
//Разделители
|
||
if(substr_count($login,' ')+substr_count($login,'-')+substr_count($login,'_')>2)
|
||
{
|
||
$error = 'Не более двух разделителей одновременно (пробел, тире, нижнее подчеркивание).'; $_POST['step'] = 1;
|
||
}
|
||
$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') {
|
||
$uer = 'Вы успешно сменили логин';
|
||
$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)
|
||
{
|
||
$sx = 'а';
|
||
}
|
||
$rtxt = '[img[items/nick.gif]] '.$rang.' "'.$u->info['cast_login'].'" сменил'.$sx.' логин персонажа "'.$uu['login_last'].'" на "'.$uu['login'].'"';
|
||
|
||
$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);
|
||
$rtxt = $rang.' "'.$u->info['login'].'" сменил'.$sx.' логин сперсонажа с "'.$uu['login_last'].'" на "'.$uu['login'].'".';
|
||
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)");
|
||
$uer = 'Вы успешно сменили логин персонажа "'.$uu['login_last'].'" на '.$uu['login'].'.';
|
||
mysql_query('INSERT INTO `lastnames` (`uid`,`login`,`newlogin`,`time`) VALUES (
|
||
"'.$uu['id'].'","'.$uu['login_last'].'","'.$uu['login'].'","'.time().'"
|
||
)');
|
||
}else{
|
||
$uer = 'Не удалось использовать данное заклятие';
|
||
}
|
||
}else{
|
||
$uer = 'Не удалось сменить логин: '.test_login($uu['login_new']);
|
||
}
|
||
}
|
||
}else{
|
||
$uer = 'Персонаж не найден в этом городе';
|
||
}
|
||
}else{
|
||
$uer = 'У Вас нет прав на использование данного заклятия';
|
||
}
|
||
?>
|