Авторизация пользователей является одним из важных функциональных элементов любого веб-сайта. В данной статье мы рассмотрим простую форму авторизации на PHP с использованием базы данных MySQL.
Для начала создадим таблицу в базе данных MySQL, где будем хранить информацию о пользователях. Пример структуры таблицы:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL
);
Далее создадим HTML-форму для авторизации:
Теперь создадим файл login.php, в котором будет происходить проверка данных пользователя и авторизация:
session_start();
$mysqli = new mysqli(‘localhost’, ‘username’, ‘password’, ‘database’);
if ($mysqli->connect_error) {
die(‘Connect Error (‘ . $mysqli->connect_errno . ‘) ‘ . $mysqli->connect_error);
}
$username = $_POST[‘username’];
$password = $_POST[‘password’];
$query = SELECT * FROM users WHERE username=’$username’ AND password=’$password’;
$result = $mysqli->query($query);
if ($result->num_rows == 1) {
$_SESSION[‘username’] = $username;
header(‘Location: dashboard.php’);
} else {
echo ‘Invalid username or password’;
}
$mysqli->close();
?>
В данном примере мы подключаемся к базе данных, проверяем данные пользователя и, в случае успешной авторизации, создаем сессию и перенаправляем пользователя на страницу dashboard.php. В противном случае выводим сообщение об ошибке.
Теперь создадим файл dashboard.php, который будет доступен только авторизованным пользователям:
session_start();
if (!isset($_SESSION[‘username’])) {
header(‘Location: login.php’);
exit();
}
?>
Welcome, = $_SESSION['username'] ?>
В данном файле мы проверяем наличие сессии пользователя. Если сессия не установлена, перенаправляем пользователя на страницу авторизации. В противном случае выводим приветственное сообщение и ссылку для выхода из системы.
Таким образом, мы создали простую форму авторизации на PHP с использованием базы данных MySQL. Этот пример можно доработать и расширить функционал для более сложных проектов. Важно помнить о безопасности данных и использовать защиту от SQL-инъекций и других уязвимостей.