Простая Авторизация в PHP: Руководство и Пример
Авторизация пользователей — это ключевой элемент любого веб-приложения, обеспечивающий безопасный доступ к ресурсам. В этом руководстве мы рассмотрим простую систему авторизации на PHP с использованием базы данных MySQL.
Начальная настройка
Для начала создадим базу данных и таблицу пользователей:
«`sql
CREATE DATABASE auth_example;
USE auth_example;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
«`
Добавим тестового пользователя с хэшированным паролем:
«`php
$hashed_password = password_hash(‘password123’, PASSWORD_DEFAULT);
INSERT INTO users (username, password) VALUES (‘testuser’, ‘$hashed_password’);
«`
Форма входа
Создадим HTML-форму для ввода логина и пароля:
«`html
«`
Обработка входа
Создадим файл `login.php` для обработки данных формы:
«`php
session_start();
if ($_SERVER[‘REQUEST_METHOD’] === ‘POST’) {
$username = $_POST[‘username’];
$password = $_POST[‘password’];
// Подключение к базе данных
$pdo = new PDO(‘mysql:host=localhost;dbname=auth_example’, ‘root’, »);
// Запрос пользователя из базы данных
$stmt = $pdo->prepare(‘SELECT * FROM users WHERE username = :username’);
$stmt->execute([‘:username’ => $username]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user && password_verify($password, $user[‘password’])) {
// Установка сессии
$_SESSION[‘user_id’] = $user[‘id’];
echo ‘Вы успешно вошли!’;
} else {
echo ‘Неверный логин или пароль.’;
}
}
?>
«`
Защита страниц
Чтобы защитить доступ к определенным страницам, создадим файл `auth.php`:
«`php
session_start();
if (!isset($_SESSION[‘user_id’])) {
header(‘Location: login.php’);
exit;
}
?>
«`
Теперь включаем `auth.php` в начало любой защищенной страницы:
«`php
Добро пожаловать, пользователь!
«`
Выход из системы
Создадим файл `logout.php` для завершения сессии:
«`php
session_start();
session_destroy();
header(‘Location: login.php’);
exit;
?>
«`
Заключение
Эта простая авторизация в PHP демонстрирует основные шаги по созданию системы управления доступом. Используя хэширование паролей и сессии, мы обеспечиваем безопасность данных пользователей. Для более сложных приложений рекомендуется использовать фреймворки и библиотеки, такие как Laravel или Symfony, которые предоставляют готовые решения для управления аутентификацией.
© KiberSec.ru – 07.04.2025, обновлено 07.04.2025
Перепечатка материалов сайта возможна только с разрешения администрации KiberSec.ru.