$_会话";复杂性”;关于登录和注销php


$_Session "complication" on login and logout php

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

我有一个注销文件:

<?php
session_start();
session_destroy();
header("Location:index.php");
?>  

和一个init.php文件:

<?php
session_start();
?> 

当我登录时调用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">

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

session_start();
$_SESSION['user_logged_in'] = true;

在您的注销页面

session_start();
unset($_SESSION['user_logged_in']);   
session_destroy();

在您的主页

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