我有两个文件:登录文件和视图文件。 在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 关注
- 98 浏览
添加回答
举报
0/150
提交
取消