Выход из аккаунта

193
08 июня 2018, 11:10

Есть статья с готовым кодом для регистрации и авторизации аккаунта: 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.

Answer 1

Лучше использовать сессии

Кусочек вашего кода с авторизацией будет выглядеть так:

<?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

READ ALSO
Реализация турнирной таблицы MySQL + PHP

Реализация турнирной таблицы MySQL + PHP

Есть запрос вывода таблицы чемпионатаКак преобразовать эту таблицу в нормальную форму

187
Отправка данных в форму

Отправка данных в форму

Имеем форму отправки данных в файл

190
Суммирование значений таблицы MySQL

Суммирование значений таблицы MySQL

Дорогие друзья, есть такая таблица в mysql

198
Сортировка по связанному полю , laravel

Сортировка по связанному полю , laravel

Есть таблица product, есть таблица cityЕсть city_product

207