Не происходит авторизация
Ребят, нужна помощь - не работает режим сессии, при выходе и в принципе при неавторизации таблица с данными отображается, а должна только для тех кто зарегистрирован..
процесс авторизации (login.php)
<?php
include 'db.php';
$login = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
$password = filter_var(trim($_POST['password']), FILTER_SANITIZE_STRING);
$hash = password_hash($password, PASSWORD_DEFAULT);
$result = mysqli_query($connection, "SELECT * FROM users WHERE 'login'= '$login'");
$check = mysqli_fetch_array($result);
if (password_verify($password, $hash))
{
$_SESSION['logged_user'] = $login;
header('Location: lk.php');
} else
{
exit ("Извините, введённый вами логин или пароль неверный.");
}
Страница, после авторизации (lk.php):
<?php
include ("db.php");
?>
<!DOCTYPE html>
<head>
<title> Тестовое задание - личный кабинет </title>
</head>
<body>
<?php
if(isset($_SESSION['logged_user']))
{
?>
<p> Привет, <?php echo $_SESSION['login'] ?> | <a href="exit.php">Выйти</a> </p>
<table border="1" cellpadding="10" cellspacing="5">
<tr>
<th>id</th>
<th>Login</th>
<th>password</th>
</tr>
<?php
$r1 = mysqli_query($connection, "SELECT * FROM users");
while ( ($us = mysqli_fetch_assoc ($r1)) )
{
echo '<tr><td>' . $us['id'] . '</td><td>' . $us['login'] . '</td><td>' . $us['password'] . '</td><tr>';
}
?>
</table>
<?php
}
else
{
echo "Зарегистрируйтесь, чтобы просматривать эту страницу";
}
?>
</body>
</html>
Выход из сессии оформлен через
unset($_SESSION['logged_user']);
Функцию начала сессии залил в db.php:
<?php
$connection = mysqli_connect('127.0.0.1', 'root', '', 'test_beeline');
if ($connection == false)
{
echo 'Ошибка подключения';
echo mysqli_connect_error();
exit();
}
session_start();
Ответы (1 шт):
Автор решения: Alexander
→ Ссылка
Ты сравниваешь пароль с $_POST с хэшем, который создал от него же, далее условие будет исполняться всегда.
$password = filter_var(trim($_POST['password']), FILTER_SANITIZE_STRING);
$hash = password_hash($password, PASSWORD_DEFAULT);