Файл: public_html/modules/settings.php
Строк: 141
<?php
include_once ('../core/base.php');
falseauth();
switch($act){
default:
$header = 'Личные настройки';
include_once ('../core/head.php');
if(isset($_GET['mail_status']))
{
if($u['mail_status'] == 0) $db->query("UPDATE `users` SET `mail_status` = '1' WHERE `id` = '".$u['id']."'");
else $db->query("UPDATE `users` SET `mail_status` = '0' WHERE `id` = '".$u['id']."'");
redirect('/settings', 'Статус почты обновлён!');
}
echo '<a class="link" href="/settings/email/"> Привязать E-MAIL адрес </a>';
echo '<a class="link" href="/settings/pass/"> Сменить пароль </a>';
echo '<a class="link" href="/settings/login/"> Сменить имя игрока </a>';
echo '<a class="link" href="/referal"> Реферальная система </a>';
echo '<a class="link" href="/avatar"> Установить аватар </a>';
if($u['mail_status'] == 1) echo '<a class="link" href="?mail_status"> Закрыть почту </a>';
else echo '<a class="link" href="?mail_status"> Открыть почту </a>';
break;
case 'activation':
$header = 'Активация аккаунта';
include_once ('../core/head.php');
$codeActivation = fl($_GET['code']);
if(!isset($codeActivation)) error('Код подтверждения не обнаружен');
elseif($u['activation_code'] != $codeActivation) error('Код подтверждения неправильный');
elseif($u['activation'] == 1) error('Аккаунт уже подтвержден');
else {
$base -> query("UPDATE `users` SET `activation` = '1' WHERE `id` = '".$u['id']."'");
success('Ваш почтовый ящик успешно подтвержден');
}
echo '<div class="line"></div>';
echo '<a class="link" href="/settings/"> Вернуться в настройки </a>';
echo '<a class="link bradius" href="/"> Вернуться на главную </a>';
break;
case 'email':
$header = 'Привязка EMAIL адреса';
include_once ('../core/head.php');
if(isset($_REQUEST['email'])){
$email = fl($_POST['mail']);
$code = generateCode($length = 10);
$sqlMail = $base -> query("SELECT COUNT * FROM `users` WHERE `email` = '$email'") -> num_rows;
if($sqlMail > 0) error('Такой e-mail уже занят');
elseif (!preg_match('/[0-9a-z_-]+@[0-9a-z_-^.]+.[a-z]{2,6}/i', $email)) error('Неправильный формат почтового ящика');
elseif(!empty($u['activation_code'])) error('Код подтверждения уже был отправлен ранее');
elseif($u['activation'] == 1) error('Вы уже подтвердили почтовый ящик');
else{
$base -> query("UPDATE `users` SET `email` = '$email', `activation_code` = '".$code."', `activation` = '0' WHERE `id` = '".$u['id']."'");
$message = '
Здравствуйте, '.$u['login'].'.
Вы заказали подтверждение почтового адреса в игре Могущество: Средиземья. Для подтверждения перейдите по ссылке http://'.$_SERVER['HTTP_HOST'].'/activation/'.$code.'
-----------------ВНИМАНИЕ!-----------------
Если Вы, не заказывали подтверждение вашего почтового адреса в нашей игре, то просто проигрнориу=руйте это сообщение. Всего хорошего!
';
mail($email, "Подтверждение почтового ящика", $message, "Content-type:text/plain; Charset=utf-8rn");
success('Ссылка отправлена на вашу почту');
}
}
echo '<div class="b">';
if($u['activation'] == 0){
echo '<form action="" method="POST">';
echo 'Ваша почта: <br/>';
echo '<input type="text" name="mail" placeholder="..."></br>';
echo '<input type="submit" name="email" value="Подтвердить"></br>';
echo '</form>';
} else {
echo 'К аккаунту привязана почта: <b>'.$u['email'].'</b> ';
}
echo '</div>';
echo '<div class="line"></div>';
echo '<a class="link" href="/settings/"> Вернуться в настройки </a>';
echo '<a class="link bradius" href="/"> Вернуться на главную </a>';
break;
case 'pass':
$header = 'Смена пароля';
include_once ('../core/head.php');
unsave();
if(isset($_REQUEST['success'])){
$p['passLast'] = fl($_POST['passLast']);
$p['passNew'] = fl($_POST['passNew']);
$p['repassNew'] = fl($_POST['repassNew']);
if(empty($p['passLast']) or empty($p['passNew'])or empty($p['repassNew'])) error('Заполните все поля');
elseif(md5($p['passLast']) != $u['password']) error('Неправильно введен старый пароль');
elseif($p['passNew'] != $p['repassNew']) error('Новые пароли не совпадают');
elseif(strlen($p['passNew']) < 6 || strlen($p['passNew']) > 30) error('Пароль должен содержать не менее 6 символов и не более 30');
elseif(strlen($p['passNew']) < 6) error('Введенный пароль небезопасен. Введите пароль содержащий более 6 символов');
elseif($u['login'] == $p['passNew']) error('Логин и пароль не должны совпадать');
else {
$base -> query("UPDATE `users` SET `password` = '".md5($p['passNew'])."' WHERE `id` = '".$u['id']."'");
setcookie('login', $u['login'], time()+86400*365, '/');
setcookie('password', md5($p['passNew']), time()+86400*365, '/');
success('Вы успешно сменили пароль');
}
}
echo '<div class="b">';
echo '<div class="title">Смена личного пароля</div>';
echo '<form method="POST" action="">';
echo 'Ваш старый пароль: <br/>';
echo '<input type="password" name="passLast" placeholder="Впишите старый пароль..." value="" /> <br/>';
echo 'Ваш новый пароль: <br/>';
echo '<input type="password" name="passNew" placeholder="Впишите новый пароль..." value="" /> <br/>';
echo 'Ваш новый пароль еще раз: <br/>';
echo '<input type="password" name="repassNew" placeholder="Впишите новый пароль еще раз..." value="" /> <br/>';
echo '<input type="submit" name="success" value="Изменить" />';
echo '</form>';
echo '</div>';
echo '<div class="line"></div>';
echo '<a class="link bradius" href="/settings/"> Вернуться назад </a>';
break;
case 'login':
$header = 'Смена имени игрока';
include_once ('../core/head.php');
if(isset($_GET['change']))
{
$login = fl($_POST['login']);
if(empty($login)) redirect('/settings/login', 'Введите имя игрока!');
if(mb_strlen($login) > 15) redirect('/settings/login', 'Максимальная длина имени игрока - 15 символов!');
if($login == $u['login']) redirect('/settings/login', 'Введите другой логин!');
$issetUsersWithThisLogin = $db->query("SELECT * FROM `users` WHERE `login` = '".$login."'");
if($issetUsersWithThisLogin->num_rows > 0) redirect('/settings/login', 'Введите другой логин!');
if($u['change_login_counts'] == 0 && $u['gold'] < 5) redirect('/settings/login', 'Недостаточно гемов!');
if($u['change_login_counts'] > 0) $db->query("UPDATE `users` SET `change_login_counts` = `change_login_counts` - '1' WHERE `id` = '".$u['id']."'");
else $db->query("UPDATE `users` SET `gold` = `gold` - '5' WHERE `id` = '".$u['id']."'");
$db->query("UPDATE `users` SET `login` = '".$login."' WHERE `id` = '".$u['id']."'");
setcookie('login', $login, time()+86400*365, '/');
setcookie('password', $u['password'], time()+86400*365, '/');
redirect('/settings/login', 'Имя игрока изменено!');
}
echo '<div class="b">
<center>
<form action="/settings/login/change" method="post">
Новое имя пользователя:<br>
<input type="text" name="login" required><br>
<input type="submit" name="change" value="Сменить">
</form>
</center>
</div>
<div class="line"></div>';
if($u['change_login_counts'] > 0)
{
echo '<div class="b">Бесплатных смен имени игрока: '.$u['change_login_counts'].'</div>';
}
else
{
echo '<div class="b">Стоимость смены имени игрока: 5 гемов!</div>';
}
break;
}
include_once ('../core/foot.php');