Важно: Этот код предполагает, что структура базы данных (linux_sumuis_ru) уже существует и содержит таблицу articles с полями title, content, и date_created. Также, предполагается, что пользователь alex с паролем 964305 имеет доступ к этой базе данных. Если структура базы данных отличается, необходимо внести соответствующие изменения в код.

1. includes/db_connect.php

<?php

$host = "localhost";
$user = "alex";
$password = "964305";
$database = "linux_sumuis_ru";

$connection = mysqli_connect($host, $user, $password, $database);

if (!$connection) {
    die("Ошибка подключения к базе данных: " . mysqli_connect_error());
}

mysqli_set_charset($connection, "utf8");
?>
  • Описание: Этот файл содержит параметры подключения к базе данных MySQL/MariaDB. $connection — это ресурс соединения с базой данных. mysqli_set_charset устанавливает кодировку соединения в UTF-8, что важно для корректного отображения русских символов.
  • Важно: Убедитесь, что hostname (localhost) корректен. Если база данных находится на другом сервере, укажите его IP-адрес или доменное имя.

2. includes/templates/header.php

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Мой сайт</title>
    <link rel="stylesheet" href="public/css/style.css">
</head>
  • Описание: Этот файл содержит HTML-код для <head> страницы. Он устанавливает кодировку символов, viewport для адаптивности и подключает CSS-файл.
  • Примечание: Можно добавить другие мета-теги, стили, и т.д.

3. includes/templates/footer.php

</body>
</html>
  • Описание: Этот файл содержит HTML-код для закрытия тегов </body> и </html>.

4. public/css/style.css (примерный контент)

body {
    font-family: sans-serif;
    margin: 0;
    padding: 0;
    background-color: #f4f4f4;
}

.container {
    width: 80%;
    margin: 0 auto;
    padding: 20px;
    background-color: #fff;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

h1, h2 {
    color: #333;
}

article {
    margin-bottom: 15px;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 5px;
}

a {
    color: #007bff;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}
  • Описание: Этот файл содержит базовые стили для оформления страницы.
  • Примечание: Замените этот пример на свой собственный CSS-код.

Файлы, связанные с авторизацией (нужны для полной функциональности):

Для корректной работы admin/login.php, admin/index.php и includes/auth.php?action=logout необходимо создать их. Это лишь примерные заготовки и потребуют дальнейшей разработки в зависимости от реализации авторизации.

4. admin/login.php (Пример)

<?php
session_start();

// Обработка формы логина
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST["username"];
    $password = $_POST["password"];

    // Здесь должна быть проверка учетных данных в базе данных.
    // В целях примера, допустим, что username и password совпадают
    if ($username == "admin" && $password == "password") {
        $_SESSION["user_id"] = 1; // Замените на реальный user_id
        $_SESSION["username"] = "admin";
        header("Location: index.php");
        exit;
    } else {
        $login_error = "Неверное имя пользователя или пароль.";
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Вход</title>
</head>
<body>
    <form method="post">
        <?php if (isset($login_error)) echo "<p class='error'>" . $login_error . "</p>"; ?>
        <label for="username">Имя пользователя:</label><br>
        <input type="text" id="username" name="username"><br><br>
        <label for="password">Пароль:</label><br>
        <input type="password" id="password" name="password"><br><br>
        <input type="submit" value="Войти">
    </form>
</body>
</html>

5. admin/index.php (Пример)

<?php
session_start();

if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
    exit;
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Админ-панель</title>
</head>
<body>
    <h1>Добро пожаловать в админ-панель!</h1>
    <p>Вы вошли как <?php echo $_SESSION['username']; ?>.</p>
    <a href="includes/auth.php?action=logout">Выйти</a>
</body>
</html>

6. includes/auth.php (Пример)

<?php
session_start();

$action = $_GET['action'] ?? null;

if ($action == 'logout') {
    session_unset();
    session_destroy();
    header("Location: ../index.php");
    exit;
}
?>

Важные замечания:

  • Безопасность: Код для авторизации ( admin/login.php, admin/index.php, includes/auth.php) приведен только в качестве примера. В реальной среде необходимо использовать надежные методы хеширования паролей и проверки учетных данных. Избегайте хранения паролей в открытом виде. Так же нужно защитить эти файлы от прямого доступа извне.
  • Обработка ошибок: Добавьте обработку ошибок во все файлы, особенно в db_connect.php, чтобы не выводить конфиденциальную информацию в случае проблем с подключением к базе данных.
  • Валидация данных: Обязательно валидируйте все данные, поступающие от пользователя, чтобы предотвратить SQL-инъекции и другие виды атак.
  • Структура базы данных: Убедитесь, что таблица articles существует в базе данных linux_sumuis_ru и имеет поля title, content, date_created.
  • Хеширование паролей: Реальный код должен использовать хеширование паролей для безопасности. Не храните пароли в открытом виде.
  • Защита от CSRF: При реализации формы логина используйте защиту от CSRF (Cross-Site Request Forgery).

После создания всех файлов, убедитесь, что у пользователя alex есть права на чтение и запись в директории includes, includes/templates, admin, и public/css.

От alex

Обучаемый.