我有兩個文件:登錄文件和視圖文件。 在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>
- 1 回答
- 0 關注
- 153 瀏覽
添加回答
舉報
0/150
提交
取消