View file adred.ru/admin/index.php

File size: 13.17Kb
<?php
session_start();
$title = 'Админ панель';
require_once '../sys/db.php';
require_once '../sys/head.php';

if (!isset($_SESSION['login_attempts'])) {
    $_SESSION['login_attempts'] = 0;
}
if (!isset($_SESSION['block_time'])) {
    $_SESSION['block_time'] = 0;
}

if ($_SESSION['login_attempts'] >= 3 && (time() - $_SESSION['block_time']) < 900) {
    $remaining_time = 900 - (time() - $_SESSION['block_time']);
    die('<div class="alert alert-danger">Доступ заблокирован. Попробуйте снова через ' . gmdate("i:s", $remaining_time) . ' минут.</div>');
}

$query = "SELECT * FROM `sett` LIMIT 1";
$result = $mysqli->query($query);
if ($result) {
    $set = $result->fetch_assoc();
} else {
    die('Ошибка при получении настроек: ' . $mysqli->error);
}

if (!isset($_SESSION['view']['captcha'])) {
    include 'captcha/captcha-st/captcha.php';
}

if (isset($_POST['ok'])) {
    $error = '';
    $adm = htmlspecialchars(trim($_POST['adm']));
    $pass = $_POST['pass'];
    $captcha = htmlspecialchars(trim($_POST['captcha']));


    if ($_SESSION['view']['captcha'] != $captcha) {
        echo '<div class="alert alert-danger">Неверная капча!</div>';
        include 'captcha/captcha-st/captcha.php';
    } else {

        if ($set['adm'] === $adm && password_verify($pass, $set['pass'])) {
            $_SESSION['admin'] = true;
            $_SESSION['admin_login'] = $set['adm'];
            $_SESSION['login_attempts'] = 0;
            
            header("Location: /admin/");
            exit();
        } else {
            $_SESSION['login_attempts']++;
            if ($_SESSION['login_attempts'] >= 3) {
                $_SESSION['block_time'] = time();
                echo '<div class="alert alert-danger">Неверный логин или пароль. Доступ заблокирован на 15 минут.</div>';
            } else {
                echo '<div class="alert alert-danger">Неверный логин или пароль. Осталось попыток: ' . (3 - $_SESSION['login_attempts']) . '</div>';
            }
        }
        include 'captcha/captcha-st/captcha.php';
    }
}

if (!isset($_SESSION['admin']) || !$_SESSION['admin']) {
    echo '
    <div class="bg-index"><br>
        <div class="title-page">
            <h2 style="color: #fff;">Вход в админ-панель</h2>
        </div>
        <div class="container">
            <center>
                <p class="text-light" style="position: relative;z-index: 99;">
                    Введите логин и пароль для доступа к админ-панели.
                </p>
            </center><br><br><br>
        </div>
    </div>
    
    <div class="container">
        <div class="row">
            <div class="col-lg-4 col-md-3"></div>
            <div class="col-lg-4 col-md-6">
                <div class="alert bg-light stat" style="margin-top: -55px;">
                    <h5>Форма авторизации</h5><hr>
                    <form action="" method="POST" autocomplete="off">
                        <div class="form-group login-form">
                            <input type="text" name="adm" placeholder="Логин" class="form-control" required>
                            <input type="password" name="pass" placeholder="Пароль" class="form-control mt-3" required>
                            <img src="/captcha/captcha-st/captcha.php" alt="Капча" style="margin-top: 5px;">
                            <input type="text" name="captcha" placeholder="Введите капчу" class="form-control mt-3" required>
                            <input type="submit" name="ok" value="Войти" class="btn btn-info btn-lg mt-3" style="width: 100%;">
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>';
} else {

    echo '<div class="bg-index"><br/>
    <div class="title-page">
        <h2 style="color: #fff;">Админ панель</h2>
    </div>
    <div class="container">
        <center>
            <p class="text-light" style="position: relative;z-index: 99;font-size: 120%;">Добро пожаловать, ' . htmlspecialchars($_SESSION['admin_login']) . '</p>
        </center>
    </div><br/>
    </div><br/>';

    echo '<div class="container mt-4">
    <div class="row">
        <div class="col-md-3 mb-3">
            <a href="/admin/?case=viiew" class="text-decoration-none">
                <div class="card bg-primary text-white text-center p-3">
                    <h5>Площадки в iframe</h5>
                </div>
            </a>
        </div>
        <div class="col-md-3 mb-3">
            <a href="/admin/filtr" class="text-decoration-none">
                <div class="card text-white text-center p-3" style="background-color: #ff7518;">
                    <h5>Фильтр URL</h5>
                </div>
            </a>
        </div>
        <div class="col-md-3 mb-3">
            <a href="/admin/sett" class="text-decoration-none">
                <div class="card bg-info text-white text-center p-3">
                    <h5>Настройки сайта</h5>
                </div>
            </a>
        </div>
        <div class="col-md-3 mb-3">
            <a href="/admin/history" class="text-decoration-none">
                <div class="card bg-warning text-dark text-center p-3">
                    <h5>История платежей</h5>
                </div>
            </a>
        </div>
        <div class="col-md-3 mb-3">
            <a href="/admin/cod" class="text-decoration-none">
                <div class="card bg-danger text-white text-center p-3">
                    <h5>Редактор подвала</h5>
                </div>
            </a>
        </div>
        <div class="col-md-3 mb-3">
            <a href="/admin/cod2" class="text-decoration-none">
                <div class="card bg-secondary text-white text-center p-3">
                    <h5>Редактор счётчиков</h5>
                </div>
            </a>
        </div>
        <div class="col-md-3 mb-3">
            <a href="/admin/cod3" class="text-decoration-none">
                <div class="card bg-dark text-white text-center p-3">
                    <h5>Правила и контакты</h5>
                </div>
            </a>
        </div>
        <div class="col-md-3 mb-3">
            <a href="/admin/news" class="text-decoration-none">
                <div class="card bg-success text-white text-center p-3">
                    <h5>Управление новостями</h5>
                </div>
            </a>
        </div>
        <div class="col-md-3 mb-3">
            <a href="/admin/blog" class="text-decoration-none">
                <div class="card bg-purple text-white text-center p-3 shadow-sm" style="background-color: #6f42c1;">
                    <h5>Управление блогом</h5>
                </div>
            </a>
        </div>
    </div>
    </div>';

    $case = isset($_GET['case']) ? $_GET['case'] : '';
    switch ($case) {
        case 'viiew':
            echo '<div class="bg-index"><br/>
                <div class="title-page">
                    <h2 style="color: #fff;">Список площадок</h2>
                </div>
                <br/>
            </div><br/>
            <div class="container">
                <div class="row">';

            $query = "SELECT * FROM `iframe` WHERE `expire` > NOW() AND `status` = '1' ORDER BY `id` ASC";
            $result = $pdo->query($query)->fetchAll();

            if (!empty($result)) {
                foreach ($result as $link) {
                    echo '<div class="col-md-4 mb-4">
                        <div class="card shadow">
                            <div class="card-body">
                                <h5 class="card-title">
                                    <a ' . (($link['color'] || $link['bold'] || $link['italic']) ? 'style="' . ($link['bold'] ? 'font-weight:bold;' : '') . ($link['italic'] ? 'font-style:italic;' : '') . ($link['color'] ? 'color:' . $link['color'] : '') . '" ' : '') . 'href="' . $link['url'] . '" target="_blank">' . $link['url'] . '</a>
                                </h5>
                                <p class="card-text">Истекает: ' . $link['expire'] . '</br> Трафик: ' . $link['traffic'] . '</p>
                                <div class="btn-group">
                                    <a href="/admin/?case=edit_iframe&id=' . $link['id'] . '" class="btn btn-sm btn-outline-warning">
                                         Редактировать
                                    </a>
                                    <a href="/admin/?case=delete_iframe&id=' . $link['id'] . '" 
                                       class="btn btn-sm btn-outline-danger" 
                                       onclick="return confirm(\'Вы уверены, что хотите удалить эту площадку?\')">
                                         Удалить
                                    </a>
                                </div>
                            </div>
                        </div>
                    </div>';
                }
            } else {
                echo '<div class="col-12">
                    <div class="alert alert-warning text-center">
                        <b>ЗАКАЗОВ НЕТ!</b>
                    </div>
                  </div>';
            }

            echo '</div>
            </div>
            </div><br/>';
            echo '<div class="container">
                <div class="row">
                    <div class="col-lg-4 col-md-3"></div>
                    <div class="col-lg-4 col-md-6">
                        <div class="alert bg-light stat" style="margin-top: -55px;">
                            <center><a href="/admin/" class="btn btn-secondary">Админ панель</a></center>
                        </div>
                    </div>
                </div>
            </div>';
            break;

        case 'edit_iframe':
            if (isset($_GET['id'])) {
                $id = intval($_GET['id']);
                echo '<div class="container">
                    <div class="alert alert-info">
                        <h4>Редактирование площадки ID: ' . $id . '</h4>
                        <form method="post" action="/admin/?case=update_iframe">
                            <input type="hidden" name="id" value="' . $id . '">
                            <div class="form-group">
                                <label>URL:</label>
                                <input type="text" name="url" class="form-control" value="">
                            </div>
                            <div class="form-group">
                                <label>Дата окончания:</label>
                                <input type="datetime-local" name="expire" class="form-control">
                            </div>
                            <button type="submit" class="btn btn-primary">Сохранить</button>
                            <a href="/admin/?case=viiew" class="btn btn-secondary">Отмена</a>
                        </form>
                    </div>
                </div>';
            }
            break;

        case 'update_iframe':
            if (isset($_POST['id'])) {
                $id = intval($_POST['id']);
                $url = $_POST['url'];
                $expire = $_POST['expire'];
                
                $query = "UPDATE `iframe` SET `url` = ?, `expire` = ? WHERE `id` = ?";
                $stmt = $mysqli->prepare($query);
                $stmt->bind_param('ssi', $url, $expire, $id);
                if ($stmt->execute()) {
                    header("Location: /admin/?case=viiew");
                    exit();
                } else {
                    echo '<div class="alert alert-danger">Ошибка при обновлении площадки.</div>';
                }
            }
            break;

        case 'delete_iframe':
            if (isset($_GET['id'])) {
                $id = intval($_GET['id']);
                $query = "DELETE FROM `iframe` WHERE `id` = ?";
                $stmt = $mysqli->prepare($query);
                $stmt->bind_param('i', $id);
                if ($stmt->execute()) {
                    echo '<div class="alert alert-success">Площадка успешно удалена!</div>';
                    header("Location: /admin/?case=viiew");
                    exit();
                } else {
                    echo '<div class="alert alert-danger">Ошибка при удалении площадки.</div>';
                }
            } else {
                echo '<div class="alert alert-warning">Не указан ID площадки для удаления.</div>';
            }
            break;

        default:
        
            break;
    }
}

require_once '../sys/foot.php';
?>