Вход Регистрация
Файл: pages/account/friends.php
Строк: 96
<?php
// Physical module map v50.6.
if (!defined('GAME_ROOT')) define('GAME_ROOT'dirname(__DIR__2));
chdir(GAME_ROOT);
if (
PHP_SAPI !== 'cli') { $_SERVER['PHP_SELF']='/friends.php'$_SERVER['SCRIPT_NAME']='/friends.php'; }

require_once 
'./system/common.php';
require_once 
'./system/functions.php';
require_once 
'./system/user.php';
if(!
$user){ header('Location: /'); exit; }
$uid=(int)$user['id'];

if((
$_SERVER['REQUEST_METHOD']??'GET')==='POST'){
    
security_require_csrf();
    
$action=(string)($_POST['action']??'');
    
$target=(int)($_POST['user_id']??0);
    if(
$target<=0$_SESSION['err']='Введите корректный ID игрока.';
    elseif(
$target===$uid$_SESSION['err']='Себя нельзя добавлять в список друзей.';
    elseif(
$action==='add'){
        
$exists=db_fetch_one('SELECT `id` FROM `users` WHERE `id`=:u LIMIT 1',['u'=>$target]);
        if(!
$exists$_SESSION['err']='Игрок не найден.';
        elseif(
db_fetch_one('SELECT 1 FROM `friends` WHERE `user`=:u AND `user2`=:t LIMIT 1',['u'=>$uid,'t'=>$target])) $_SESSION['info']='Данный игрок уже в вашем списке друзей.';
        else{
            
db_pdo()->beginTransaction();
            try{
                
db_execute('DELETE FROM `blacklist` WHERE `user`=:u AND `user2`=:t',['u'=>$uid,'t'=>$target]);
                
db_execute('INSERT INTO `friends` (`user`,`user2`,`time`) VALUES (:u,:t,:tm)',['u'=>$uid,'t'=>$target,'tm'=>time()]);
                
db_pdo()->commit(); $_SESSION['ok']='Список обновлён.';
            }catch(
Throwable $e){ if(db_pdo()->inTransaction())db_pdo()->rollBack(); throw $e; }
        }
    }elseif(
$action==='delete'){
        
db_execute('DELETE FROM `friends` WHERE `user`=:u AND `user2`=:t',['u'=>$uid,'t'=>$target]);
        
$_SESSION['ok']='Игрок удалён из списка.';
    }
    
header('Location: /mail/friends/'); exit;
}

$title='Список друзей'; require './system/h.php';
$max=10$count=(int)(db_result(db_query('SELECT COUNT(*) FROM `friends` WHERE `user`='.$uid),0)?:0);
$pages=max(1,(int)ceil($count/$max)); $page=max(1,min($pages,(int)($_GET['page']??1))); $start=($page-1)*$max;
?>
<div class="main">
<?php if($count>0):
$q=db_query('SELECT l.`user2`,l.`time`,u.`login`,u.`r`,u.`level`,u.`online` FROM `friends` l INNER JOIN `users` u ON u.`id`=l.`user2` WHERE l.`user`='.$uid.' ORDER BY l.`time` DESC LIMIT '.$start.','.$max);
while(
$row=db_fetch_assoc($q)): ?>
<div class="block_zero"><a href="/user/<?=(int)$row['user2']?>/"><img src="/images/icon/race/<?=(int)$row['r']?>.png" alt=""> <?=security_html((string)$row['login'])?></a>, <img src="/images/icon/level.png" alt=""> <?=(int)$row['level']?> ур
<form method="post" action="/mail/friends/" class="inline-form"><?=security_csrf_field()?><input type="hidden" name="action" value="delete"><input type="hidden" name="user_id" value="<?=(int)$row['user2']?>"><button class="link-button medium" type="submit">Удалить</button></form></div><div class="dot-line"></div>
<?php endwhile; ?>
<div class="block_zero"><?=pages('/mail/friends/?')?></div>
<?php else: ?><div class="block_zero"><span class="grey">Список друзей пуст</span></div><?php endif; ?>
<div class="dot-line"></div>
<div class="block_zero"><form method="post" action="/mail/friends/"><?=security_csrf_field()?><input type="hidden" name="action" value="add">Введите ID игрока:<br><input name="user_id" inputmode="numeric" class="text" required><br><button class="btn" type="submit">Добавить</button></form></div>
<div class="dot-line"></div><div class="menuList"><li><a href="/mail/"><img src="/images/icon/arrow.png" alt="">Вернуться в почту</a></li></div></div>
<?php require './system/f.php'?>
Онлайн: 2
Реклама