Создание таблицы пользователей и реализовать форму входа на сайт — это важный шаг в разработке веб-приложения. Давайте шаг за шагом разберём, как это можно сделать на языке PHP.
1. Создание таблицы users
Для создания таблицы в базе данных, предположим, что вы используете MySQL. Вам нужно выполнить следующий SQL-запрос:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
user VARCHAR(50) NOT NULL,
pass VARCHAR(255) NOT NULL,
status BOOLEAN NOT NULL
);
Теперь заполним таблицу несколькими строками данных:
INSERT INTO users (user, pass, status) VALUES
('user1', 'password1', 1),
('user2', 'password2', 1),
('user3', 'password3', 1);
2. Реализация формы входа
Создайте файл, например login.php, и добавьте в него следующий код:
<?php
session_start();
$host = 'localhost'; // ваш хост
$db = 'your_database'; // ваше имя базы данных
$user = 'your_username'; // ваше имя пользователя базы данных
$pass = 'your_password'; // ваш пароль базы данных
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die("Ошибка подключения: " . $conn->connect_error);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $conn->prepare("SELECT * FROM users WHERE user = ? AND pass = ?");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 1) {
$_SESSION['authenticated'] = true;
// Создаем переменную с именем пользователя для дальнейшего использования
$_SESSION['username'] = $username;
header("Location: welcome.php"); // Перенаправление на страницу приветствия
exit();
} else {
$error_message = "Некорректный ввод";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Вход</title>
</head>
<body>
<h2>Форма входа</h2>
<form method="post">
<label for="username">Имя пользователя:</label>
<input type="text" name="username" required><br>
<label for="password">Пароль:</label>
<input type="password" name="password" required><br>
<input type="submit" value="Войти">
</form>
<?php
if (isset($error_message)) {
echo "<p style='color:red;'>" . $error_message . "</p>";
}
?>
</body>
</html>
3. Создание страницы «Выход»
Создайте файл logout.php, который будет управлять выходом пользователя:
<?php
session_start();
session_destroy(); // Уничтожаем все сессии
header("Location: login.php"); // Перенаправление на страницу входа
exit();
?>
4. Страница «Приветствия»
Создайте файл welcome.php, чтобы приветствовать пользователя:
<?php
session_start();
if (!isset($_SESSION['authenticated'])) {
header("Location: login.php"); // Если пользователь не аутентифицирован, перенаправляем на страницу входа
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Добро пожаловать</title>
</head>
<body>
<h2>Добро пожаловать, <?php echo $_SESSION['username']; ?>!</h2>
<a href="logout.php">Выход</a>
</body>
</html>
Заключение
Теперь у вас есть базовая структура для аутентификации пользователей с использованием PHP и MySQL. Не забудьте, что хранение паролей в открытом виде не рекомендуется. Рассмотрите возможность использования функции password_hash() при сохранении паролей и password_verify() для проверки. Это повысит безопасность вашей системы. Удачи в вашей учебе и разработке!
