game/modules_data/moder/uselogin.php

145 lines
6.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?
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.' &quot;'.$u->info['cast_login'].'&quot; сменил'.$sx.' логин персонажа &quot;'.$uu['login_last'].'&quot; на &quot;'.$uu['login'].'&quot;';
$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.' &quot;'.$u->info['login'].'&quot; сменил'.$sx.' логин сперсонажа с &quot;'.$uu['login_last'].'&quot; на &quot;'.$uu['login'].'&quot;.';
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 = 'Вы успешно сменили логин персонажа &quot;'.$uu['login_last'].'&quot; на '.$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 = 'У Вас нет прав на использование данного заклятия';
}
?>