Как авторизоваться на сессиях?

Правильная ли последовательность? :
1) Имеется форма входа (логин и пароль). Вверху этой формы я пишу

<?php
session_start();
?>


К форме (2 инпута) привязан файл авторизации :

<?php
$connection = mysqli_connect('localhost', 'root', '', 'Hunter') or die(mysqli_error());

if (isset($_POST['submit'])) 
{
    if (empty($_POST['login'])) 
    {
        $info_input = 'Вы не ввели логин';
    }
    elseif (empty($_POST['password'])) 
    {
        $info_input = 'Вы не ввели пароль';
    }
    else 
    {    
        $login = mysqli_real_escape_string($connection, $_POST['login']); 
        $password = $_POST['password'];            
        $user = mysqli_query($connection, "SELECT `id` FROM `admin` WHERE `login` = '$login' AND `password` = '$password'");
        $id_user = mysqli_fetch_array($user);
                
        if (empty($id_user['id'])) 
        {
            $info_input = 'Введенные данные не верны';
        }
        else 
        {
            $_SESSION['password'] = $password; 
            $_SESSION['login'] = $login; 
            $_SESSION['id'] = $id_user['id']; 

			echo "Вы успешно вошли на сайт!<script>window.location = 'index.php';</script>";			
        }     
    }
}
        
$info_input = isset($info_input) ? $info_input : NULL;
echo $info_input;

?>


Проверяется логин и пароль из бд Hunter, таблицы admin. Всё окей, ввели данные > перебросило на нужную страницу
Сессия сейчас работает, верно?
Кнопка выхода из сессии :
<button class="logout" onclick="document.location.replace('?exit');">Logout</button>

<?php
if(isset($_GET['exit'])) {
session_destroy(); 
#redirect
header('Location: index.php');
exit;
}
?>

После нажатия сессия должна полностью быть уничтожена и нас должно перекинуть на главную страницу
Выдаёт ошибку "Trying to destroy uninitialized session"
В чём моя ошибка и правильна ли последовательность?
  • Вопрос задан
  • 315 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Div100
Trying to destroy uninitialized session

Ну судя по всему у тебя на этой страницы сессия еще не инициализирована, то есть:
session_start(); // инициализируешь, чтобы было, что уничтожать потом
session_unset();
session_destroy();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы