Файл: settings.php
Строк: 473
<?php
include_once ('core/base.php');
falseauth();
switch($act){
default:
$header = 'Настройки';
include_once ('core/head.php');
//Если не привязана электронная почта
if($u['email'] == ''){
header('Location: /settings/email/');
exit;
}
echo '<div class="b">';
echo '<div class="title">Настройки</div>';
echo '<div class="event"><center>Первый сброс очков характеристик и очков умений осуществляется бесплатно, а все последующие будут стоить <img src="/images/icons/gold.png"><font color="gold">500</font> золота.</center></div>';
if($u['first_reset_char_points'] == 0) $reset_charpoints_cost = 0;
else $reset_charpoints_cost = 500;
echo '<a class="btn" href="/settings/charpoints/"><img src="/images/icons/character_points.png"> Сбросить очки характеристик <img src="/images/icons/gold.png"><font color="gold">'.$reset_charpoints_cost.'</font></a>';
if($u['first_reset_skill_points'] == 0) $reset_skillpoints_cost = 0;
else $reset_skillpoints_cost = 500;
echo '<a class="btn" href="/settings/skillpoints/"><img src="/images/icons/skill_points.png"> Сбросить очки умений <img src="/images/icons/gold.png"><font color="gold">'.$reset_skillpoints_cost.'</font></a>';
echo '<a class="btn" href="/settings/statistics/"><img src="/images/icons/skeleton.png"> Сбросить статистику <img src="/images/icons/gold.png"><font color="gold">500</font></a>';
echo '<a class="btn" href="/settings/login/"><img src="/images/icons/key.png"> Сменить логин <img src="/images/icons/gold.png"><font color="gold">'.n_f(1000).'<font></a>';
echo '<a class="btn" href="/settings/sex/"><img src="/images/icons/settings.png"> Сменить пол <img src="/images/icons/gold.png"><font color="gold">'.n_f(1000).'</font></a>';
//echo '<a class="btn" href="/settings/email/"><img src="/images/icons/mail.png"> Привязать E-mail</a>';
echo '<a class="btn" href="/settings/status/"><img src="/images/icons/fearrow.png"> Сменить статус</a>';
echo '<a class="btn" href="/settings/info/"><img src="/images/icons/blue_fearrow.png"> Заполнить анкету</a>';
echo '<a class="btn" href="/settings/pass/"><img src="/images/icons/key.png"> Сменить пароль</a>';
if($u['chat_on_location'] == 'on') echo '<a class="btn" href="/settings/change_chat_on_location/"><img src="/images/icons/red_fearrow.png"> Отключить чат в локации</a>';
else echo '<a class="btn" href="/settings/change_chat_on_location/"><img src="/images/icons/blue_fearrow.png"> Включить чат в локации</a>';
echo '<a class="btn" href="/exit/"><img src="/images/icons/no.png"> Выйти из игры</a>';
echo '<br/><a class="btn" href="javascript:history.go(-1)"><img src="/images/icons/back.png"> Назад</a>';
echo '</div>';
break;
case 'activation':
$header = 'Подтверждение E-mail';
include_once ('core/head.php');
$codeActivation = fl($_GET['code']);
if(!isset($codeActivation)) error('Код подтверждения не обнаружен.');
elseif($u['activation_code'] != $codeActivation) error('Код подтверждения не верный.');
elseif($u['activation'] == 1) error('E-mail уже подтвержден.');
else {
$base -> query("UPDATE `users` SET `activation` = '1' WHERE `id` = '".$u['id']."'");
succes('E-mail успешно подтвержден.');
header('Location: /');
exit;
}
break;
case 'email':
$header = 'Привязка E-mail';
include_once ('core/head.php');
if($u['email'] != ''){
$_SESSION['message'] == 'Электронная почта уже привязана.';
header('Location: /settings/');
exit;
}
if(isset($_REQUEST['email'])){
$email = fl($_POST['mail']);
$code = generateCode($length = 10);
$sqlMail = $base -> query("SELECT * 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('Неверный формат E-mail.');
elseif(!empty($u['activation_code'])) error('Код подтверждения уже был отправлен ранее.');
elseif($u['activation'] == 1) error('Вы уже подтвердили E-mail.');
else{
$base -> query("UPDATE `users` SET
`gold` = `gold` + '100',
`email` = '$email',
`activation_code` = '".$code."',
`activation` = '0'
WHERE `id` = '".$u['id']."'");
$message = '
Здравствуйте, '.$u['login'].'. n
Для привязки Вашего аккаунта к E-mail перейдите по ссылке: <a href="http://avalor.mobi/activation/'.$code.'">http://avalor.mobi/activation/'.$code.'</a> n
--------- n
Если Вы не собирались привязывать E-mail в AVALOR.mobi, то проигнорируйте данное письмо.
';
mail($email, "Подтверждение E-mail в AVALOR.mobi", $message, "Content-type:text/plain; Charset=utf-8rn");
//success('Ссылка для подтверждения отправлена на E-mail.');
$_SESSION['message'] = 'Электронная почта успешно привязана.';
header('Location: /settings/');
exit;
}
}
echo '<div class="b">';
echo '<div class="title">Привязка E-mail</div>';
if($u['activation'] == 0){
echo '<center><form action="" method="POST">';
echo '<div class="event">
Привязав электронную почту, вы получите <img src="/images/icons/gold_24.png"><font color="gold"><b>100</b></font> золота.
</div>';
echo '<input type="text" name="mail"></br>';
echo '<input type="submit" name="email" value="Готово"></br>';
echo '</form></center><br/>';
} else {
echo '<br/><center>Ваш аккаунт привязан к: <b>'.$u['email'].'</b></center><br/>';
}
echo '</div>';
break;
case 'status':
$header = 'Статус';
include_once ('core/head.php');
unsave();
$_REQUEST['success'] = fl($_REQUEST['success']);
if(isset($_REQUEST['success'])){
$p['status'] = fl($_POST['status']);
if(empty($p['status'])) error('Заполните все поля.');
elseif(mb_strlen($p['status']) < 3 || mb_strlen($p['status']) > 50) error('Статус должен содержать не менее 3 символов и не более 50.');
else {
$base -> query("UPDATE `users` SET `status` = '".$p['status']."' WHERE `id` = '".$u['id']."' LIMIT 1");
$_SESSION['message'] = 'Статус успешно сохранён.';
header('Location: /settings/status/');
exit;
}
}
echo '<div class="b">';
echo '<div class="title">Статус</div>';
echo '<form method="POST" action="">';
echo '<center>';
echo 'Новый статус: <br/>';
echo '<input type="text" name="status" value="'.$u['status'].'" /><br/>';
echo '<input type="submit" name="success" value="Сохранить" />';
echo '</form>';
echo '</center>';
echo '<a class="btn" href="/settings/"><img src="/images/icons/back.png"> Назад</a>';
echo '</div>';
break;
case 'info':
$header = 'Анкета';
include_once ('core/head.php');
unsave();
if(isset($_REQUEST['success'])){
$i['name'] = fl($_POST['name']);
$i['country'] = fl($_POST['country']);
$i['info'] = fl($_POST['info']);
if(empty($i['name'])) error('Заполните все поля.');
elseif(empty($i['country'])) error('Заполните все поля.');
elseif(mb_strlen($i['name']) < 2 || mb_strlen($i['name']) > 20) error('Имя должно содержать не менее 2 символов и не более 20.');
elseif(mb_strlen($i['country']) < 3 || mb_strlen($i['country']) > 20) error('Страна должна содержать не менее 3 символов и не более 20.');
else{
$base -> query("UPDATE `users` SET
`name` = '".$i['name']."',
`country` = '".$i['country']."',
`info` = '".$i['info']."'
WHERE `id` = '".$u['id']."'");
$_SESSION['message'] = 'Анкета успешно сохранена.';
header('Location: /settings/info/');
exit;
}
}
echo '<div class="b">';
echo '<div class="title">Анкета</div>';
echo '<form method="POST" action="">';
echo '<center>';
echo 'Имя: <br/>';
echo '<input type="text" name="name" value="'.$u['name'].'" /><br/>';
echo 'Страна: <br/>';
echo '<input type="text" name="country" value="'.$u['country'].'" /><br/>';
echo '<input type="submit" name="success" value="Сохранить" />';
echo '</form>';
echo '</center>';
echo '<a class="btn" href="/settings/"><img src="/images/icons/back.png"> Назад</a>';
echo '</div>';
break;
case 'charpoints';
$header = 'Сброс очков характеристик';
include_once ('core/head.php');
unsave();
if($u['first_reset_char_points'] == 0) $reset_charpoints_cost = 0;
else $reset_charpoints_cost = 500;
$buff_active = $base -> query('SELECT * FROM `buffs` WHERE `user` = "'.$u['id'].'" LIMIT 1') -> num_rows;
if($buff_active == 0){
if($u['equip_right'] == 0 AND $u['equip_left'] == 0 AND $u['equip_head'] == 0 AND $u['equip_body'] == 0 AND $u['equip_hands'] == 0 AND $u['equip_foot'] == 0 AND $u['equip_necklace'] == 0 AND $u['equip_ring'] == 0){
if($u['gold'] >= $reset_charpoints_cost){
$_GET['answer'] = fl($_GET['answer']);
if($_GET['answer'] == 'yes'){
$charpoints = $u['level'] * 5;
$base -> query('UPDATE `users` SET
`p_att` = "15",
`m_att` = "0",
`p_def` = "0",
`m_def` = "0",
`endurance` = "5",
`intellect` = "5",
`agility` = "5",
`skill` = "5",
`character_points` = "'.$charpoints.'",
`gold` = `gold` - "'.$reset_charpoints_cost.'",
`first_reset_char_points` = "1" WHERE `id` = "'.$u['id'].'"');
$_SESSION['message'] = 'Очки характеристик успешно сброшены.';
header('Location: /settings/');
exit;
}elseif($_GET['answer'] == 'no'){
header('Location: /settings/');
exit;
}
echo '<div class="b">';
echo '<div class="title">Сброс очков харатеристик</div>';
echo '<div class="event"><center>Вы действительно хотите сбросить очки характеристик?</center></div>';
echo '<a class="btn" href="/settings/charpoints/yes/"><img src="/images/icons/yes.png"> Да</a>';
echo '<a class="btn" href="/settings/charpoints/no/"><img src="/images/icons/no.png"> Нет</a>';
echo '</div>';
}else{
$_SESSION['message'] = 'Недостаточно золота.';
header('Location: /settings/');
exit;
}
}else{
$_SESSION['message'] = 'Для начала, снимите все надетые вещи.';
header('Location: /settings/');
exit;
}
}else{
$_SESSION['message'] = 'Дождитесь окончания времени усилений.';
header('Location: /settings/');
exit;
}
break;
case 'skillpoints';
$header = 'Сброс очков умений';
include_once ('core/head.php');
unsave();
if($u['first_reset_skill_points'] == 0) $reset_skillpoints_cost = 0;
else $reset_skillpoints_cost = 500;
if($u['gold'] >= $reset_skillpoints_cost){
$_GET['answer'] = fl($_GET['answer']);
if($_GET['answer'] == 'yes'){
$base -> query('DELETE FROM `users_skills` WHERE `user` = "'.$u['id'].'"');
$skillpoints = $u['level'] - 1;
$base -> query('UPDATE `users` SET
`skill_points` = "'.$skillpoints.'",
`gold` = `gold` - "'.$reset_skillpoints_cost.'",
`skill_slot_1` = "0",
`skill_slot_2` = "0",
`skill_slot_3` = "0",
`first_reset_skill_points` = "1" WHERE `id` = "'.$u['id'].'" LIMIT 1');
$_SESSION['message'] = 'Очки умений успешно сброшены.';
header('Location: /settings/');
exit;
}elseif($_GET['answer'] == 'no'){
header('Location: /settings/');
exit;
}
echo '<div class="b">';
echo '<div class="title">Сброс очков умений</div>';
echo '<div class="event"><center>Вы действительно хотите сбросить очки умений?</center></div>';
echo '<a class="btn" href="/settings/skillpoints/yes/"><img src="/images/icons/yes.png"> Да</a>';
echo '<a class="btn" href="/settings/skillpoints/no/"><img src="/images/icons/no.png"> Нет</a>';
echo '</div>';
}else{
$_SESSION['message'] = 'Недостаточно золота.';
header('Location: /settings/');
exit;
}
break;
case 'statistics';
$header = 'Сброс статистики';
include_once ('core/head.php');
unsave();
$reset_statistics_cost = 500;
if($u['gold'] >= $reset_statistics_cost){
$_GET['answer'] = fl($_GET['answer']);
if($_GET['answer'] == 'yes'){
$base -> query('UPDATE `users` SET
`duel_wins` = "0",
`duel_loses` = "0",
`kills` = "0",
`boss_kills` = "0",
`gold` = `gold` - "'.$reset_statistics_cost.'"
WHERE `id` = "'.$u['id'].'" LIMIT 1');
$_SESSION['message'] = 'Статистика успешно сброшена.';
header('Location: /settings/');
exit;
}elseif($_GET['answer'] == 'no'){
header('Location: /settings/');
exit;
}
echo '<div class="b">';
echo '<div class="title">Сброс статистики</div>';
echo '<div class="event"><center>Вы действительно хотите сбросить статистику?</center></div>';
echo '<a class="btn" href="/settings/statistics/yes/"><img src="/images/icons/yes.png"> Да</a>';
echo '<a class="btn" href="/settings/statistics/no/"><img src="/images/icons/no.png"> Нет</a>';
echo '</div>';
}else{
$_SESSION['message'] = 'Недостаточно золота.';
header('Location: /settings/');
exit;
}
break;
case 'login':
$header = 'Смена логина';
include_once ('core/head.php');
unsave();
$change_login_cost = 250;
if(isset($_REQUEST['success'])){
$p['login'] = fl($_POST['newLogin']);
$login_exist_nr = $base -> query('SELECT * FROM `users` WHERE `login` = "'.$p['login'].'" LIMIT 1') -> num_rows;
if(empty($p['login'])) error('Введите новый логин.');
elseif(strlen($p['login']) < 3 || strlen($p['login']) > 30) error('Логин должен содержать не менее 3 символов и не более 30.');
elseif($login_exist_nr > 0) error('Логин занят.');
elseif($u['gold'] < $change_login_cost) error('Недостаточно золота.');
else {
$base -> query("UPDATE `users` SET `login` = '".$p['login']."', `gold` = `gold` - '".$change_login_cost."' WHERE `id` = '".$u['id']."' LIMIT 1");
setcookie('login', $p['login'], time()+86400*365, '/');
setcookie('password', $u['password'], time()+86400*365, '/');
success('Логин успешно сохранён.');
}
}
echo '<div class="b">';
echo '<div class="title">Смена логина</div>';
echo '<div class="event"><center>Стоимость смены логина <img src="/images/icons/gold.png">'.$change_login_cost.'</center></div>';
echo '<center>';
echo '<form method="POST" action="">';
echo 'Новый логин: <br/>';
echo '<input type="text" name="newLogin" placeholder="Введите новый логин." value="" /> <br/>';
echo '<input type="submit" name="success" value="Сохранить" />';
echo '</form>';
echo '</center>';
echo '<a class="btn" href="/settings/"><img src="/images/icons/back.png"> Назад</a>';
echo '</div>';
break;
case 'sex';
$header = 'Смена пола';
include_once ('core/head.php');
unsave();
$change_sex_cost = 500;
if($u['gold'] >= $change_sex_cost){
$_GET['answer'] = fl($_GET['answer']);
if($_GET['answer'] == 'yes'){
if($u['sex'] == 1) $sex = 2;
elseif($u['sex'] == 2) $sex = 1;
$base -> query('UPDATE `users_skins` SET `skin` = "'.$sex.'" WHERE `user` = "'.$u['id'].'" AND `skin` = "'.$u['sex'].'" LIMIT 1');
$skin = $base -> query('SELECT * FROM `users_skins` WHERE `skin` = "'.$u['sex'].'" LIMIT 1') -> fetch_assoc();
$base -> query('UPDATE `users` SET `sex` = "'.$sex.'", `skin` = "'.$skin['id'].'", `gold` = `gold` - "'.$change_sex_cost.'" WHERE `id` = "'.$u['id'].'" LIMIT 1');
$_SESSION['message'] = 'Пол успешно сменён.';
header('Location: /settings/');
exit;
}elseif($_GET['answer'] == 'no'){
header('Location: /settings/');
exit;
}
echo '<div class="b">';
echo '<div class="title">Смена пола</div>';
echo '<div class="event"><center>Вы действительно хотите сменить пол?</center></div>';
echo '<a class="btn" href="/settings/sex/yes/"><img src="/images/icons/yes.png"> Да</a>';
echo '<a class="btn" href="/settings/sex/no/"><img src="/images/icons/no.png"> Нет</a>';
echo '</div>';
}else{
$_SESSION['message'] = 'Недостаточно золота.';
header('Location: /settings/');
exit;
}
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']."' LIMIT 1");
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 '<center>';
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 '</center>';
echo '<a class="btn" href="/settings/"><img src="/images/icons/back.png"> Назад</a>';
echo '</div>';
break;
case 'change_chat_on_location':
if($u['chat_on_location'] == 'on') $change = 'off';
elseif($u['chat_on_location'] == 'off') $change = 'on';
$base -> query('UPDATE `users` SET `chat_on_location` = "'.$change.'" WHERE `id` = "'.$u['id'].'" LIMIT 1');
if($change == 'off') $_SESSION['message'] = 'Чат в локации отключен.';
elseif($change == 'on') $_SESSION['message'] = 'Чат в локации включен.';
header('Location: /settings/');
exit;
break;
}
include_once ('core/foot.php');
?>