$time=time();
function md5m($src)
{
$tar = Array(16);
$res = Array(16);
$src = utf8_encode ($src);
for ($i = 0; $i < strlen($src) || $i < 16; $i++)
{
$res[$i] = ord($src{$i}) ^ $i * 4;
}
for ($i = 0; $i < 4; $i++)
{
for ($j = 0; $j < 4; $j++)
{
$tar[$i * 4 + $j] = ($res[$j * 4 + $i] + 256) % 256;
}
}
return ($tar);
}
function array2HStr($src)
{
$hex = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");
$res = "";
for ($i = 0; $i < 16; $i++)
{
$res = $res . ($hex[$src[$i] >> 4] . $hex[$src[$i] % 16]);
}
return ($res);
}
if ($_POST['oldpsw2']) {
$_POST['oldpsw2'] = addslashes($_POST['oldpsw2']);
$oldpsw2=md5(array2HStr(md5m($_POST['oldpsw2'])));
if($oldpsw2==$u->info['pass2']){
mysql_query("UPDATE `users` SET `pass2` = '' WHERE `id` = '".mysql_real_escape_string($u->info['id'])."' LIMIT 1;");
echo "Второй пароль выключен. ";
$u->info['pass2']='';
}else{
echo "Введен не верный второй пароль! ";
}
}
if ($_POST['num_count']) {
if($_POST['num_count']==4){$pass2=rand(1000,9999);}elseif($_POST['num_count']==6){$pass2=rand(100000,999999);}else{$pass2=rand(10000000,99999999);}
if(mysql_query("UPDATE `users` SET `pass2` = '".md5(array2HStr(md5m($pass2)))."' WHERE `id` = '".mysql_real_escape_string($u->info['id'])."' LIMIT 1;")){
echo "Второй пароль: $pass2. Запомните или запишите, т.к. он не высылается на email и его нельзя как-либо узнать. Потеряв второй пароль, вы потеряете персонажа! Этот пароль выслан на ваш email.
";
$u->info['pass2']=md5(array2HStr(md5m($pass2)));
$headers = "Mime-Version: 1.1 \r\n";
$headers .= "Date: ".date("r")." \r\n";
$headers .= "Content-type: text/html; charset=cp1251 \r\n";
$headers .= "From: Новый Бойцовский Клуб \r\n";
$headers = trim($headers);
$headers = stripslashes($headers);
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
$aa='
Второй пароль от персонажа '.$u->info['login'].'.
Вами, с IP адреса - '.$ip.', был установлен второй пароль в игре Бойцовский Клуб.
Если это были не Вы, свяжитесь с администрацией сайта.
------------------------------------------------------------------
Ваш логин | '.$u->info['login'].'
Второй пароль | '.$pass2.'
------------------------------------------------------------------
Желаем Вам приятной игры.
Администрация
';
mail($u->info['mail'],"Второй пароль от персонажа \"".$u->info['login']."\" [".$u->info['level']."]",$aa,$headers);
}
}
/*-------Смена пароля--------*/
if ($_POST['oldpass'] && $_POST['npass'] && $_POST['npass2']) {
if($u->info['securetime']>$time) {echo"Должно пройти не менее трех суток между сменой подтверждения, пароля или email. ";}
elseif($u->info['emailconfirmation']!=-1123) {
if ($u->info['pass'] == md5($_POST['oldpass'])) {
if($_POST['npass'] == $_POST['npass2']) {
if(mysql_query("UPDATE `users` SET `pass` = '".md5($_POST['npass'])."' , `repass` = 0, `securetime` = '".(time()+259200)."' WHERE `id` = '".mysql_real_escape_string($u->info['id'])."' LIMIT 1;"))
{echo "Пароль удачно сменен. "; $_COOKIE['pass'] = md5($_POST['npass']);}
} else{echo "Не совпадают новые пароли. ";}
}else{echo "Неверный старый пароль. ";}
}
#----------------------------------------------------------------
elseif($u->info['emailconfirmation'] == 1) {
if($u->info['pass'] == md5($_POST['oldpass'])) {
if ($_POST['npass'] == $_POST['npass2']){
$code=rand(1000000000,9999999999).".".rand(10000,99999);
if(mysql_query("INSERT INTO
`emailconfirmation` (
`id`,
`code`,
`pa_em`,
`pass`)
VALUES (
'".mysql_real_escape_string($u->info['id'])."',
'".mysql_real_escape_string($code)."',
'".md5($_POST['npass'])."',
1)"))
{
/////////////////////////////////////////////////IP///////////////////////////////////////////////
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
//////////////////////////////////////////отсылаем на почту///////////////////////////////////////
$headers = "Mime-Version: 1.1 \r\n";
$headers .= "Date: ".date("r")." \r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Бойцовский Клуб \r\n";
$headers = trim($headers);
$headers = stripslashes($headers);
$aa='
Смена пароля
'.date("d.m.y H:i").'
Кто-то с IP: '.$ip.' пытается сменить пароль к персонажу "'.$u->info['login'].'" ['.$u->info['level'].'].
Т.к. в анкете у этого персонажа указан email: '.$u->info['mail'].', то вы и получили это письмо.
login: '.$u->info['login'].'
Прежний пароль (без кавычек): "'.$_POST['oldpass'].'"
Новый пароль (без кавычек): "'.$_POST['npass'].'"
Для того чтобы подтвердить смену пароля, вы должны зайти по ссылке:
https://'.$u->info['city'].'.new-combats.com/confirm.php?id='.$u->info['id'].'&code='.$code.'
--
Бойцовский Клуб https://www.new-combats.com
Администрация Бойцовского Клуба: support@new-combats.com
P.S. Данное письмо сгенерировано автоматически, отвечать на него не нужно.
';
mail($u->info['mail'],"Смена пароля у персонажа \"".$u->info['login']."\" [".$u->info['level']."]",$aa,$headers);
//////////////////////////////////////////////////////////////////////////////////////////////////
echo"На ваш email выслано письмо с просьбой подтвердить операцию смены пароля ";
}
}else{echo "Не совпадают новые пароли.";}
}else{ echo "Неверный старый пароль."; }
}
#-------------------------------------
}
/*-----Смена e-mail------*/
if ($_POST['oldpsw'] && $_POST['oldemail'] && $_POST['newemail']) {
if($u->info['securetime']>$time) {echo"Должно пройти не менее трех суток между сменой подтверждения, пароля или email. ";}
elseif($u->info['pass'] != md5($_POST['oldpsw'])) {echo "Неверный пароль. ";}
elseif($u->info['mail'] != $_POST['oldemail']) {echo "Неверный старый E-Mail. ";}
elseif($u->info['emailconfirmation']==0) {
if($u->info['pass'] == $_POST['oldpsw'] || $u->info['mail'] == $_POST['oldemail']) {
if(mysql_query("UPDATE `users` SET `mail` = '".mysql_real_escape_string($_POST['newemail'])."', `securetime` = '".(time()+259200)."' WHERE `id` = '".mysql_real_escape_string($u->info['id'])."' LIMIT 1;"))
{
echo "E-mail удачно изменен. ";
}
}
else{echo "E-Mail не изменен. ";}
}
#----------------------------------------------------------------
elseif($u->info['emailconfirmation'] == 1) {
if($u->info['pass'] == $_POST['oldpsw'] || $u->info['mail'] == $_POST['oldemail']) {
$code=rand(1000000000,9999999999).".".rand(10000,99999);
if(mysql_query("INSERT INTO
`emailconfirmation` (
`id`,
`code`,
`pa_em`,
`email`)
VALUES (
'".mysql_real_escape_string($u->info['id'])."',
'".mysql_real_escape_string($code)."',
'".mysql_real_escape_string($_POST['newemail'])."',
1)"))
{
/////////////////////////////////////////////////IP///////////////////////////////////////////////
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
//////////////////////////////////////////отсылаем на почту///////////////////////////////////////
$headers = "Mime-Version: 1.1 \r\n";
$headers .= "Date: ".date("r")." \r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Бойцовский Клуб \r\n";
$headers = trim($headers);
$headers = stripslashes($headers);
$aa='
Смена email
'.date("d.m.y H:i").'
Кто-то с IP: '.$ip.' пытается сменить email к персонажу "'.$u->info['login'].'" ['.$u->info['level'].'].
Т.к. в анкете у этого персонажа указан email: '.$u->info['mail'].', то вы и получили это письмо.
login: '.$u->info['login'].'
Прежний email (без кавычек): "'.$_POST['oldemail'].'"
Новый email (без кавычек): "'.$_POST['newemail'].'"
Для того чтобы подтвердить смену email, вы должны зайти по ссылке:
https://new-combats.com/confirm.php?id='.$u->info['id'].'&code='.$code.'
--
Бойцовский Клуб https://www.new-combats.com
Администрация Бойцовского Клуба: support@new-combats.com
P.S. Данное письмо сгенерировано автоматически, отвечать на него не нужно.
';
mail($u->info['mail'],"Смена email у персонажа \"".$u->info['login']."\" [".$u->info['level']."]",$aa,$headers);
//////////////////////////////////////////////////////////////////////////////////////////////////
echo"На ваш email выслано письмо с просьбой подтвердить операцию смены email ";
}
}else{ echo "Неверный старый пароль или email. "; }
}
#-------------------------------------
}
/*----Вопрос/Ответ------*/
/* if ($_POST['oldpsw1']) {
$ops = mysql_fetch_array(mysql_query("SELECT `pass`, `securetime`, `emailconfirmation` FROM `users` WHERE `id` = '".mysql_real_escape_string($u->info['id'])."'"));
if($u->info['securetime']>$time) {echo"Должно пройти не менее трех суток между сменой подтверждения, пароля или email. ";}
elseif($u->info['emailconfirmation']==0) {
if ($u->info['pass'] == md5($_POST['oldpsw1'])) {
if(mysql_query("UPDATE `users` SET `a1` = '".mysql_real_escape_string($_POST['secretquestion'])."', `q1` = '".mysql_real_escape_string($_POST['secretanswer'])."', `securetime` = '".(time()+259200)."' WHERE `id` = '".mysql_real_escape_string($u->info['id'])."' LIMIT 1;"))
{
$u->info['secretquestion'] = $_POST['secretquestion'];
echo "Новый секретный вопрос / ответ записан. ";
}
}
else{echo "Неверный старый пароль. ";}
}
#----------------------------------------------------------------
elseif($u->info['emailconfirmation'] == 1) {
if($u->info['pass'] == md5($_POST['oldpsw1'])) {
$code=rand(1000000000,9999999999).".".rand(10000,99999);
if(mysql_query("INSERT INTO
`emailconfirmation` (
`id`,
`code`,
`question`,
`answer`,
`qu_an`)
VALUES (
'".mysql_real_escape_string($u->info['id'])."',
'".mysql_real_escape_string($code)."',
'".mysql_real_escape_string($_POST['secretquestion'])."',
'".mysql_real_escape_string($_POST['secretanswer'])."',
1)"))
{
/////////////////////////////////////////////////IP///////////////////////////////////////////////
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
//////////////////////////////////////////отсылаем на почту///////////////////////////////////////
$headers = "Mime-Version: 1.1 \r\n";
$headers .= "Date: ".date("r")." \r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Бойцовский Клуб \r\n";
$headers = trim($headers);
$headers = stripslashes($headers);
$aa='
Смена секретного вопроса и ответа
'.date("d.m.y H:i").'
Кто-то с IP: '.$ip.' пытается сменить секретный вопрос / ответ к персонажу "'.$u->info['login'].'" ['.$u->info['level'].'].
Т.к. в анкете у этого персонажа указан email: '.$u->info['mail'].', то вы и получили это письмо.
login: '.$u->info['login'].'
Прежний секретный вопрос: '.$u->info['secretquestion'].'
Прежний секретный ответ: '.$u->info['secretanswer'].'
Новый секретный вопрос: '.$_POST['secretquestion'].'
Новый секретный ответ: '.$_POST['secretanswer'].'
Для того чтобы подтвердить смену, вы должны зайти по ссылке:
https://'.$u->info['city'].'.new-combats.com/confirm.php?id='.$u->info['id'].'&code='.$code.'
--
Бойцовский Клуб https://www.new-combats.com
Администрация Бойцовского Клуба: support@new-combats.com
P.S. Данное письмо сгенерировано автоматически, отвечать на него не нужно.
';
mail($u->info['mail'],"Смена секретного вопроса и ответа у персонажа \"".$u->info['login']."\" [".$u->info['level']."]",$aa,$headers);
//////////////////////////////////////////////////////////////////////////////////////////////////
echo"На ваш email выслано письмо с просьбой подтвердить операцию смены секретного вопроса и ответа ";
}
}else{ echo "Неверный старый пароль. "; }
}
#-------------------------------------
$u->info['a1'] = $_POST['secretquestion'];
/* }
/*----Подтверждение на e-mail----*/
if ($_POST['email'] && $_POST['set_on_emailconfirmation']) {
if($u->info['securetime']>$time) {echo"Должно пройти не менее трех суток между сменой подтверждения, пароля или email. ";}
elseif ($u->info['mail'] == $_POST['email']) {
$code=rand(1000000000,9999999999).".".rand(10000,99999);
if(mysql_query("INSERT INTO
`emailconfirmation` (
`id`,
`code`,
`active`)
VALUES (
'".mysql_real_escape_string($u->info['id'])."',
'".mysql_real_escape_string($code)."',
1)"))
{
/////////////////////////////////////////////////IP///////////////////////////////////////////////
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
//////////////////////////////////////////отсылаем на почту///////////////////////////////////////
$headers = "Mime-Version: 1.1 \r\n";
$headers .= "Date: ".date("r")." \r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Бойцовский Клуб \r\n";
$headers = trim($headers);
$headers = stripslashes($headers);
$aa='
Востановление пароля
'.date("d.m.y H:i").'
Запрос поступил с IP: '.$ip.'
Т.к. в анкете у этого персонажа указан email: '.$u->info['mail'].', то вы и получили это письмо.
Для того чтобы включить функцию подтверждения смены пароля и email через почту, вы должны зайти по ссылке:
https://'.$u->info['city'].'.new-combats.com/confirm.php?id='.$u->info['id'].'&code='.$code.'
--
Бойцовский Клуб https://www.new-combats.com
Администрация Бойцовского Клуба: support@new-combats.com
P.S. Данное письмо сгенерировано автоматически, отвечать на него не нужно.
';
mail($u->info['mail'],"Смена подтверждения у персонажа \"".$u->info['login']."\" [".$u->info['level']."]",$aa,$headers);
//////////////////////////////////////////////////////////////////////////////////////////////////
echo "На ваш email выслано письмо с просьбой подтвердить операцию. ";
}
}
else{echo "email указан неверно. ";}
}
if ($_POST['email'] && $_POST['set_off_emailconfirmation']) { //Отключение подтверждения на email
if($u->info['securetime']>$time) {echo"Должно пройти не менее трех суток между сменой подтверждения, пароля или email. ";}
/*НЕДОДЕЛАНО */
}
?>
Чем выше уровень вашего персонажа, тем больше к нему внимания со стороны злоумышленников. Чтобы ваш персонаж небыл подвержен взлому, необходимо соблюдать элементарные меры предосторожности. А именно:
1. Никогда, ни под каким предлогом, никому не говорите свой пароль. Ни паладинам, ни администрации не нужно знать ваш пароль.
2. Вводите логин и пароль только на титульной странице https://new-combats.com Ни на каких других сайтах, которые будут как две капли похожие на наш, и куда вас зазывают обещая на халяву предметы или еврокредиты, не вводите свой пароль! Иначе Ваш персонаж с вероятностью 95% будет взломан.
Настоятельно рекомендуем прочесть заметку Как обезопасить своего персонажа?.
Если вы играете из интернет кафе или компьютерного клуба, где шанс быть взломанным очень высокий, рекомендуем включить второй уровень защиты (см. ниже)