Вход Регистрация
Файл: upload/core/load-set-users.php
Строк: 36
<?php
require_once ($_SERVER['DOCUMENT_ROOT'] . '/core/core.php');

if (!isset(
$user['id'])) {
    
showAlert('Ошибка''fail''Сперва необходимо авторизоваться');
    
RedirectToPage('/');
    exit();
}

// Карта директорий
$paths = [
    
'avatar'     => '/uploads/avatars/',
    
'header'     => '/uploads/us-headers/',
    
'background' => '/uploads/us-backgrounds/'
];

// Карта полей в БД
$dbFields = [
    
'avatar'     => 'avatar',
    
'header'     => 'header',
    
'background' => 'background'
];

// Карта дефолтных файлов
$defaults = [
    
'avatar'     => 'ava.png',
    
'header'     => 'non-header.png',
    
'background' => 'non-background.png'
];

// Загружаем актуальные данные пользователя
$current FetchAssoc(dbquery("SELECT avatar, header, background FROM users WHERE id = ?", [$user['id']]));

// -------------------------
// УДАЛЕНИЕ ФАЙЛА
// -------------------------
foreach ($dbFields as $type => $field) {
    if (isset(
$_POST["delete_$type"])) {

        
$oldFile $current[$field];

        
// Не удаляем дефолтные файлы
        
if (!empty($oldFile) && $oldFile !== $defaults[$type]) {
            
$fullPath $_SERVER['DOCUMENT_ROOT'] . $paths[$type] . $oldFile;
            if (
file_exists($fullPath)) unlink($fullPath);
        }

        
// Ставим дефолт
        
dbquery("UPDATE users SET $field = ? WHERE id = ?", [$defaults[$type], $user['id']]);

        
RedirectToPage('/account/design-profile');
        exit();
    }
}

// -------------------------
// ЗАГРУЗКА ФАЙЛОВ
// -------------------------
foreach ($dbFields as $type => $field) {

    if (!empty(
$_FILES[$type]['name'])) {

        
$uploadDir $_SERVER['DOCUMENT_ROOT'] . $paths[$type];

        
// Создаём директорию если нет
        
if (!is_dir($uploadDir)) {
            
mkdir($uploadDir0755true);
        }

        
$fileName time() . "_" basename($_FILES[$type]['name']);
        
$targetFile $uploadDir $fileName;

        
$ext strtolower(pathinfo($targetFilePATHINFO_EXTENSION));

        if (!
in_array($ext, ['jpg''jpeg''png'])) {
            
showAlert('Ошибка''fail''Допустимы только JPG/PNG файлы');
            
RedirectToPage('/account/design-profile');
            exit();
        }

        
// Перемещаем файл
        
if (move_uploaded_file($_FILES[$type]['tmp_name'], $targetFile)) {

            
// Удаляем старый файл
            
$oldFile $current[$field];
            if (!empty(
$oldFile) && $oldFile !== $defaults[$type]) {
                
$oldPath $_SERVER['DOCUMENT_ROOT'] . $paths[$type] . $oldFile;
                if (
file_exists($oldPath)) unlink($oldPath);
            }

            
// Обновляем БД
            
dbquery("UPDATE users SET $field = ? WHERE id = ?", [$fileName$user['id']]);
        }
    }
}

showAlert('Успешно''success''Изменения успешно сохранены!');
RedirectToPage('/account/design-profile');
exit();
?>
Онлайн: 1
Реклама