为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
侃侃无极 2023-12-15 15:49:25
我有两个文件:登录文件和视图文件。 在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 itif ( 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"]);    }
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

你忘了把 session_start();在 view.php 的开头。


<?php

session_start();

if ( ! isset($_SESSION['who']) ) {

    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>


查看完整回答
反对 回复 2023-12-15
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信