Сессия не заканчивается должным образом - PullRequest
1 голос
/ 12 марта 2020

Так что обычно мой сеанс должен заканчиваться, когда я нажимаю кнопку выхода из системы на моей странице, но когда я go перехожу на предыдущую страницу с помощью кнопки (вверху слева). Я просто go вернулся на свою страницу, вошел в систему ..

This is my login page code
<?php 

session_start();
$errors = array();
if(isset($_POST["name"]) and isset($_POST["password"])) {
    $conn = mysqli_connect("localhost", "root", "123", "whoosh") or die("No connection made: ".mysqli_connect_error());

    $name = $_POST["name"];
    $password = $_POST["password"];


    if (empty($name)) { array_push($errors, "Ename is required"); }
    if (empty($password)) { array_push($errors, "Password is required"); }

    if (count($errors) == 0) {
        $query = "SELECT * FROM tbl_user WHERE name='$name' AND password='$password'";
        $results = mysqli_query($conn, $query);
        $user = mysqli_fetch_assoc($results);

        if ($user) { // if user exists
        if ($user['name'] === $name and $user['password'] === $password) {
            $_SESSION['user'] = $user['id'];
            header('location: mainsite.php');
        }
    }


    }
}

?>

This is the code I put on my main site thats allows me to logout.
  <?php
    session_start();


   if(isset($_GET['logout'])){
     $_SESSION['name'] = null;
    header('Location:http://leopard.med.agfa.be/leopard/website/logIn.php');
   }

   session_destroy();
 ?>

Итак, почему мой сеанс не работает должным образом и не выходит из системы полностью?

Ответы [ 2 ]

2 голосов
/ 12 марта 2020

Попробуйте это! Я не вижу, чтобы вы передавали имя в сессию.

if(isset($_GET['logout'])){
    // Initialize the session
       session_start();
    // Unset all of the session variables
       session_unset();
       $_SESSION = array();
    // Destroy the session.
        session_destroy();
        unset($_SESSION['user']);
    // Redirect to login page
        header('Location:http://leopard.med.agfa.be/leopard/website/logIn.php');
        exit();
}

Примечание: я использовал функции unset() и destroy(), вы можете использовать одну.

1 голос
/ 12 марта 2020

Измените сценарий выхода из системы следующим образом:

<?php

if(isset($_GET['logout'])){
    // null the _SESSION
    $_SESSION = null;
    // unset $_SESSION variable for the run-time 
    session_unset();
    // destroy session data in storage
    session_destroy();
    // last, redirect
    header('Location:http://leopard.med.agfa.be/leopard/website/logIn.php');
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...