$ _Session"复杂"登录和注销php

And*_*tos 5 php session mysqli

我正在为大学做一个数据库项目,我在这里遇到了一个问题.我正在尝试在没有会话时显示"登录",并在有会话时"注销".但实际上,即使我登录后仍然显示"登录",我尝试print_r($ _ SESSION); 它告诉我变量是未定义的

我有一个注销文件:

<?php
session_start();
session_destroy();
header("Location:index.php");
?>  
Run Code Online (Sandbox Code Playgroud)

和一个init.php文件:

<?php
session_start();
?> 
Run Code Online (Sandbox Code Playgroud)

登录时调用init.php.

这是index.php的一部分:

<?php
    require 'db/connect.php';
    require 'functions/security.php';
    ?>

    <html>
        <head>
            <title>Home</title>
            <meta charset="UTF-8">
            <link rel="stylesheet" href="css/common.css">
        </head>
        <body>
            <div id="linking">      
    <?php
    //print_r($_SESSION);
    if (session_status() === PHP_SESSION_NONE) {
        ?>
                    <a href="login.php">Log In</a>           
                    <?php
                } else {
                    ?>
                    <a href="logout.php">Log Out</a>
                    <?php
                }
                ?>
                <a href="new_customer.php">Register</a>
                <a href="trips.php">Search for trips</a>
            </div>
            <hr>
            <section id="section">
Run Code Online (Sandbox Code Playgroud)

Tin*_*aju 3

当您在登录页面登录成功时。

session_start();
$_SESSION['user_logged_in'] = true;
Run Code Online (Sandbox Code Playgroud)

在您的注销页面中

session_start();
unset($_SESSION['user_logged_in']);   
session_destroy();
Run Code Online (Sandbox Code Playgroud)

在您的主页中

<?php 
   session_start();
   if(isset($_SESSION['user_logged_in'])) {
 ?>
   < a href='logout.php'>Logout</a>
<?php  
   }
else {
?>
    < a href='login.php'>Login</a>
<?php 
  }
 ?> 
Run Code Online (Sandbox Code Playgroud)