为什么我的 php 文件无法识别会话?

我有两个文件:登录文件和视图文件。 在login.php文件中,我启动一个像这样的会话:“$_SESSION[“who”] = $_POST[“who”];” 当我按下登录按钮时,它会将我重定向到 view.php 文件。 view.php 检查会话以查看是否设置了用户名,如果用户名不存在,则 view.php 必须立即停止使用 PHP die() 函数。

我的问题是,无论我是否输入用户名,总是使用 die() 函数。

这是我每个文件的代码。 登录.php 文件:

session_start();


if ( isset($_POST['cancel'] ) ) {

    // Redirect the browser to game.php

    header("Location: index.php");

    return;

}


$salt = 'XyZzy12*_';

$stored_hash = '1a52e17fa899cf40fb04cfc42e6352f1';  // Pw is php123


$failure = false;  // If we have no POST data


// Check to see if we have some POST data, if we do process it

if ( isset($_POST['who']) && isset($_POST['pass']) ) {

    unset($_SESSION["who"]);

    if ( strlen($_POST['who']) < 1 || strlen($_POST['pass']) < 1 ) {

        $_SESSION["error"] = "User name and password are required";

        header( 'Location: login.php' ) ;

        return;

    } else {

        if (strpos($_POST['who'], '@') == false) {

            $_SESSION["error"] = "Email must have an at-sign @";

            header( 'Location: login.php' ) ;

            return; 

        } else {

                $check = hash('md5', $salt.$_POST['pass']);

            if ( $check == $stored_hash ) {

                $_SESSION["who"] = $_POST["who"];

                header( 'Location: view.php' ) ;

                return;

            } else {

                $_SESSION["error"] = "Incorrect password";

                header( 'Location: login.php' ) ;

                return; 

            }

        }

    }

}


// Fall through into the View

?>

<!DOCTYPE html>

<html>

<head>

<?php require_once "bootstrap.php"; ?>

<title>123</title>

</head>

<body>

<div class="container">

<h1>Please Log In</h1>

<?php

    if ( isset($_SESSION["error"]) ) {

        echo('<p style="color:red">'.htmlentities($_SESSION['error'])."</p>\n");

        unset($_SESSION["error"]);

    }



侃侃无极
浏览 99回答 1
1回答

倚天杖

你忘了把 session_start();在 view.php 的开头。<?phpsession_start();if ( ! isset($_SESSION['who']) ) {&nbsp; &nbsp; die('Not logged in');}require_once "pdo.php";?><!DOCTYPE html><html><head><title>123</title><?php require_once "bootstrap.php"; ?></head><body><div class="container"><h1>Tracking Autos for <?php ?> </h1><h2>Automobiles</h2><p><a href="add.php">Add New</a> | <a href="logout.php">Logout</a></p></div></body></html>
打开App,查看更多内容
随时随地看视频慕课网APP