Как сделать авторизацию в php

Данная статья расскажет, как создать простую систему авторизации пользователей на сайте с использованием php и приведет пример кода.

Авторизация в PHP

Авторизация в PHP позволяет пользователям авторизоваться на вашем сайте, используя логин и пароль. Это позволяет вам идентифицировать и аутентифицировать пользователей и ограничить доступ к определенной части вашего сайта. Авторизация в PHP основана на сессиях.

Для начала нам нужно создать форму авторизации, которая отображается на нашем сайте. Форма авторизации содержит два поля для ввода логина и пароля:


<form action="login.php" method="post">
  <label for="username">Username</label>
  <input type="text" name="username" />
  <label for="password">Password</label>
  <input type="password" name="password" />
  <input type="submit" value="Login" />
</form>

Когда пользователь заполняет форму и нажимает кнопку «Войти», форма отправляет данные в файл «login.php». В этом файле мы проверяем логин и пароль пользователя в базе данных и проверяем, правильны ли они:


// Подключаемся к базе данных
$db = new mysqli("localhost", "username", "password", "database");

// Проверяем логин и пароль пользователя
$query = "SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1";
$stmt = $db->prepare($query);
$stmt->bind_param("ss", $_POST["username"], $_POST["password"]);
$stmt->execute();
$result = $stmt->get_result();
$user = $result->fetch_assoc();

// Если пользователь найден, авторизуем пользователя
if ($user) {
  // Авторизуем пользователя
  session_start();
  $_SESSION["user_id"] = $user["id"];
  header("Location: /dashboard.php");
  exit;
}

Если пользователь найден, мы авторизуем его, начиная сессию и записывая в нее ID пользователя. Затем мы перенаправляем пользователя на дашборд, где он может видеть данные, доступные только авторизованным пользователям. На каждой странице мы можем проверить, авторизован ли пользователь, проверив наличие переменной сессии:


// Проверяем, авторизован ли пользователь
session_start();
if (!isset($_SESSION["user_id"])) {
  // Пользователь не авторизован, перенаправляем на страницу авторизации
  header("Location: /login.php");
  exit;
}

После этого мы можем использовать переменную сессии, чтобы получить данные о пользователе и отобразить их на вашем сайте.


// Получаем данные пользователя из базы данных
$query = "SELECT * FROM users WHERE id = ?";
$stmt = $db->prepare($query);
$stmt->bind_param("i", $_SESSION["user_id"]);
$stmt->execute();
$result = $stmt->get_result();
$user = $result->fetch_assoc();

// Отображаем данные пользователя
echo $user["username"];
echo $user["email"];

Это основы авторизации в PHP. Однако авторизация может быть очень сложным процессом, поэтому вам следует использовать готовые решения, такие как PHP-фреймворки, для быстрого и безопасного развертывания авторизации на вашем сайте.

Ответы (0)