Важно: Этот код предполагает, что структура базы данных (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.