Логин, получение имени и ошибка выхода

0

Мне интересно, действительно ли это безопасно, что я сделал. Однако есть одна ошибка, например, выход из системы. Меня зовут после isset.

здесь для входа в систему, и это успешно. → login.php

session_start();
    if($loginRow === 1) {

      $_SESSION['login'] = true;
      $_SESSION['username'] = $username;

      header ("Location: index");
      } else {
      echo "Invalid Login Information";
      }

А также получить имя пользователя внутри. Это хорошо работает. → index.php

    session_start();    

if($_SESSION['login'] = "1") {
    echo $_SESSION['username'];
    echo "<a href=\"logout\"> Logout </a>";
    } else {
    echo "<a href=\"register\"> Register </a>";
    }

и выход из системы → logout.php

session_start();
unset($_SESSION['login']);
$_SESSION['login'] = 0;

header ("Location: index");

Почему после того, как я вышел из системы, мое имя все еще там? Я думал, что он разрушен? А также вы можете проверить, есть ли способ сделать его более безопасным? Направляй меня, спасибо!

Я знаю, что я не добавил расширение, потому что использую htaccess. Так что это не проблема.

Теги:

3 ответа

0
Лучший ответ

сначала вы пропустите == в этой строке if($_SESSION['login'] = "1") {

//if($_SESSION['login'] == "1") {

а также отключить $_SESSION['username']

logout.php добавить это

unset($_SESSION['username']);
0

У вас есть ошибка здесь: if($_SESSION['login'] = "1") Это должно быть, if($_SESSION['login'] === TRUE) Единственный = просто устанавливает его в 1, который всегда будет возвращаться правда

0

Это должно быть, if($_SESSION['login'] == 1) или if($_SESSION['login'] == true) или if($_SESSION['login'])

Ещё вопросы

Сообщество Overcoder
Наверх
Меню