Файл: pages/account/settings.php
Строк: 176
<?php
// Physical module map v50.6: public URL stays clean while code lives in /pages.
if (!defined('GAME_ROOT')) define('GAME_ROOT', dirname(__DIR__, 2));
chdir(GAME_ROOT);
if (PHP_SAPI !== 'cli') { $_SERVER['PHP_SELF']='/settings.php'; $_SERVER['SCRIPT_NAME']='/settings.php'; }
/* Обновление игры под PHP 8.4 / PDO и усиление безопасности: by Метриум (Стэлп) */
include './system/common.php';
include './system/functions.php';
include './system/user.php';
include './system/menu.php';
if(!$user) {
header('location: /');
exit;
}
if($user['save'] == 0) {
header('location: /save/');
exit;
}
$cafgffgfd = htmlspecialchars((string)($_GET['action'] ?? ''),ENT_QUOTES|ENT_SUBSTITUTE,'UTF-8');
switch($cafgffgfd) {
default:
$title = 'Настройки';
include './system/h.php';
if (isset($_SESSION['passerr'])){
echo "".$_SESSION['passerr']."";
$_SESSION['passerr']=NULL;
}
if (isset($_SESSION['usname'])){
echo ''.$_SESSION['usname'].'';
$_SESSION['usname']=NULL;
}
if (isset($_SESSION['ussex'])){
echo ''.$_SESSION['ussex'].'';
$_SESSION['ussex']=NULL;
}
if (isset($_SESSION['usrace'])){
echo ''.$_SESSION['usrace'].'';
$_SESSION['usrace']=NULL;
}
if (isset($_SESSION['uspass'])){
echo ''.$_SESSION['uspass'].'';
$_SESSION['uspass']=NULL;
}
if (isset($_SESSION['usemail'])){
echo ''.$_SESSION['usemail'].'';
$_SESSION['usemail']=NULL;
}
if (($_SERVER['REQUEST_METHOD'] ?? 'GET') === 'POST') { security_require_csrf(); } // settings v50.6.1
$errors = [];
$password = _string($_POST['password'] ?? '');
if($password) {
if(!preg_match('/[a-z0-9]{2,20}/i', $password)) $errors[] = '<img src="/images/icon/error.png" alt=""> Некорректный пароль персонажа!';
if($errors) {
foreach($errors as $error) {
$_SESSION['namerr'] = ''.$error.'';
}
header('location: /settings/'); exit;
}else{
$password_get = security_password_hash($password);
db_query('UPDATE `users` SET `password` = "'.$password_get.'" WHERE `id` = ''.$user['id'].''');
security_auth_login((int)$user['id']);
$_SESSION['uspass'] = '<img src="/images/icon/ok.png" alt=""> Пароль персонажа был успешно изменён!';
header('location: /settings/'); exit;
}
}
?>
<div class="block_zero">Ник: <span class="blue"><?=$user['login']?></span><br>
<img src="/images/icon/arrow.png" alt=""> <a href="/settings/name/">Изменить <img src="/images/icon/gold.png" alt="">500</a>
</div>
<div class="dot-line"></div>
<div class="block_zero">Сторона: <img src="/images/icon/race/<?=$user['r']?>.png" alt=""> <span class="blue"><?=($user['r'] == 0 ? 'Асура':'Борея')?></span><br>
<img src="/images/icon/arrow.png" alt=""> <a href="/settings/race/">Сменить сторону <img src="/images/icon/gold.png" alt="">1000</a>
</div>
<div class="dot-line"></div>
<?php if($user['birth_day'] AND $user['birth_mounth'] AND $user['birth_year']){
$month = array("1"=>"Января","2"=>"Февраля","3"=>"Марта","4"=>"Апреля","5"=>"Мая", "6"=>"Июня", "7"=>"Июля","8"=>"Августа","9"=>"Сентября","10"=>"Октября","11"=>"Ноября","12"=>"Декабря");
?>
<div class="block_zero">День рождения: <span class="blue"><?=$user['birth_day']?> <?=$month[$user['birth_mounth']]?> <?=$user['birth_year']?></span></div>
<?php }Else{?>
<div class="block_zero"><form method="post"><?=security_csrf_field()?>Твой день рождения<br><span class="grey medium">Пример: 01.01.1990</span><br><input name="day" value="" size="3" type="text"> . <input name="month" value="" size="3" type="text"> . <input name="year" value="" size="7" type="text"><br><span class="dred medium">Важно! Вводится только один раз! Изменить будет нельзя!</span><div class="mb10"></div><span class="btn"><span class="end"><input class="label" value="Установить дату" type="submit"></span></span></form></div>
<?php
if (isset($_POST['day'], $_POST['month'], $_POST['year']) && $_POST['day'] !== '' && $_POST['month'] !== '' && $_POST['year'] !== '') {
$day=(int)$_POST['day']; $month=(int)$_POST['month']; $year=(int)$_POST['year'];
$currentYear=(int)date('Y');
if ($year >= 1900 && $year <= $currentYear && checkdate($month,$day,$year)) {
db_execute('UPDATE `users` SET `birth_day`=:d,`birth_mounth`=:m,`birth_year`=:y WHERE `id`=:id',['d'=>$day,'m'=>$month,'y'=>$year,'id'=>(int)$user['id']]);
header('location: /settings/'); exit;
}
$_SESSION['namerr'] = '<img src="/images/icon/error.png" alt=""> Некорректная дата рождения.';
header('location: /settings/'); exit;
}
}?>
<div class="dot-line"></div>
<div class="block_zero">Пол: <span class="blue"><?=($user['sex'] == 0 ? 'Мужской':'Женский')?></span><br>
<img src="/images/icon/arrow.png" alt=""> <a href="/settings/sex/">Сменить пол</a>
</div>
<div class="dot-line"></div>
<div class="empty_block lbg item_center">
Полоса опыта<br>
<div class="dot-line"></div>
<div class="block_zero"><center>Полоса опыта: <span class="blue"><?=($user['exp_line'] == 0 ? 'Старая':'Новая')?></center></span><br>
<div class="link_center"> <center><a href="/exp_line/" class='btn'><span class='end'><span class='label'>Сменить полосу</a>
</div>
<div class="dot-line"></div>
<?php
/* Настройка верхнего меню удалена в v36: панель больше не используется. */
?>
<div class="dot-line"></div>
<div class="block_zero">
<form action="/settings/" method="post">
<?=security_csrf_field()?>
<div>Новый пароль:<br>
<input class="text medium-text" name="password" maxlength="16" value="" type="text">
<br>
<span class="btn"><span class="end"><input class="label" name="send_message" value="Сменить" type="submit"></span></span>
</div>
</form>
</div>
<a href='/?exit'><font color='#909090'>Выйти из игры</font></a><br>
<a href='/closemail/'>Закрыть почту</a>
<?php
if($user['eread'] == 0){
?>
<div class="mini-line"></div>
<br><div class="block_zero"><img src="/images/icon/arrow.png" alt=""> <a href="/settings/email/">Укажите вашу почту</a></div>
<?php
?>
<?php
}
if($clan_memb['rank'] == 4){
?>
<?php
}
?>
<?php
include './system/f.php';
break;
case 'quit':
$title = 'Настройки';
if($clan_memb['rank'] < 4){
header('location: /settings/');
}
$id = _string(_num($_GET['id'] ?? 0));
if(!$id && $clan) {
$id = $clan['id'];
}
$i = db_query('SELECT * FROM `clans` WHERE `id` = "'.$id.'"');
$i = db_fetch_array($i);
if(!$clan['id'] OR $clan['id'] != $i['id']) {
header('location: /settings/');
exit;
}
include './system/h.php';
?>
<div class="menuList">
<p>Вы <span class="green">Лидер клана</span>. Вы уверены, что хотите покинуть клан?</p>
<li><a href="/clan/<?=$clan['id']?>/?exit"><img src="/images/icon/ok.png" alt="">Да, уверен</a></li>
<li><a href="/settings/"><img src="/images/icon/error.png" alt="">Нет, отмена</a></li>
</div>
<?php
include './system/f.php';
break;
}
?>