Undefined index: nickname after logout

98 Views Asked by At

Login is working but when i am logout and i go on this page with this code i have this problem: Undefined index: nickname

 <?php
                $nickname = $_SESSION['nickname'];
                 if (isset($_SESSION['nickname'])){
                    echo'Vítej '. $nickname .'.<br>
                    <a href="logout.php">Odhlásit se</a>';
                } else {
                    echo'Tato stránka je přístupná pouze přihlášeným uživatelům. Pokud nemáš účet, <a href="/registrace.php">zaregistruj se</a>!<br>
                }
                ?>

My logout

<?php
session_start();
session_unset();
session_destroy();
header("location: index.php");
?>
1

There are 1 best solutions below

0
On

When there is no session, you cannot assign it to a variable. So the assigning should happen inside the if statements.

<?php
    session_start();
    if (isset($_SESSION['nickname'])){
        $nickname = $_SESSION['nickname'];
        echo'Vítej '. $nickname .'.<br>
        <a href="logout.php">Odhlásit se</a>';
    } else {
        echo'Tato stránka je přístupná pouze přihlášeným uživatelům. Pokud nemáš účet, <a href="/registrace.php">zaregistruj se</a>!<br>
    }
?>