Как сделать что бы сайт запоминал пользователя который вошёл?
Код регистрации:
<?php
$mysqli = new mysqli("localhost","root","","game");
$mysqli->query ("SETNAMES 'utf8'");
$login=$_POST["login"];
$password=$_POST["password"];
$mysqli->query("INSERT INTO `game`.`users` (`name`, `password`, `money`) VALUES ('$login', '$password', '1000');");
$mysqli->close();
?>
Код входа:
<?php
$login = $_POST["login"];
$password = $_POST["password"];
if($login == false or $password == false){
echo("Вы не ввели логин или пароль.");
}
$db = new mysqli("localhost","root","","game");
if(!$db) exit("Ошибка подключения");
if($result = $db->query("SELECT * FROM users WHERE users.name = '$login'")){
$rowscount = mysqli_num_rows($result);
if($rowscount > 0){
$dbuserdata = $result->fetch_assoc();
if($dbuserdata["password"] == $password){
exit("Вы успешно ввошли.");
exit("Случилась ошибка. Вы ввели пароль неправильно.");
}
exit("Пользователя не существует.");
}
exit("Не удалось отправить запрос.");
}
$mysqli->close();
?>
Как сделать так что бы после входа сайт запоминал человека и ему больше не пришлось входить на других страницах сайта?
Ответы (1 шт):
Ответ из похожего вопроса.
Реализовать сессию можно различными способами, но все они подразумевают сохранение определенных данных для сверки (логины, пароли, токены или другие данные, для валидации и сверки самого пользователя и его текущей сессии, или записи новой при отсутствии оной).
Сохранить эти данные вы можете на свое усмотрение, в cookies, в массиве сессий $_SESSION или в локальном хранилище, называемом localStorage.
Суть будет одна и та же, данные от пользователя, хранящиеся в его браузере вы должны проверить со своими, которые получаете чаще всего из базы данных. Если данные валидны и совпали, сессия живет, пользователь авторизован.
Что именно использовать в качестве хранилища на клиенте, решать только вам, при необходимости устанавливать время протухания сессии, а еще и для разных роутов или уровней доступа, чаще всего используют куки, для их установки и отправки реализована специальная функция (https://www.php.net/manual/ru/function.setcookie.php) в языке.
Однако, глобальный массив $_SESSION, зачастую вызывает у новичков меньше вопросов и приводит к меньшему количеству проблем, т.к. используется он как самый простой массив доступный из любого места в скрипте.