Есть статья с готовым кодом для регистрации и авторизации аккаунта: https://htmlweb.ru/php/example/avtorizacija2.php
Но как сделать нормальный выход?
<?php
$link = mysqli_connect("localhost", "mysql", "mysql", "mysql");
$query = mysqli_query($link,"SELECT user_id, user_password FROM users WHERE user_login='".mysqli_real_escape_string($link,$_POST['login'])."' LIMIT 1");
$data = mysqli_fetch_assoc($query);
setcookie("id", $data['user_id'], time() - 60*60*24*30);
setcookie("hash", "", time() - 3600*24*30*12, "/");
header("Location: index.php"); exit();
?>
Я сделал так exit.php, но для одного аккаунта это работает. Если же зарегистрировать новый и пробовать в него зайти, то будет ошибка. Я думаю что это из-за не удаленных нормально cookies.
Лучше использовать сессии
Кусочек вашего кода с авторизацией будет выглядеть так:
<?php
session_start();
$link = mysqli_connect("localhost", "mysql", "mysql", "mysql");
$query = mysqli_query($link,"SELECT user_id, user_password FROM users WHERE user_login='".mysqli_real_escape_string($link,$_POST['login'])."' LIMIT 1");
$data = mysqli_fetch_assoc($query);
$_SESSION["user_id"] = $data['user_id'];
header("Location: index.php"); exit();
?>
Обратите внимание что хеш уже хранить не требуется: данные сессий физически хранятся на сервере, клиенту недоступны и подменить он их не может.
Пример "выхода":
<?php
session_start();
unset($_SESSION["user_id"]);
?>
Дополнительно рекомендую изучить http://php.net/manual/ru/session.examples.basic.php
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Есть запрос вывода таблицы чемпионатаКак преобразовать эту таблицу в нормальную форму
Есть таблица product, есть таблица cityЕсть city_product