PHP会话登录系统

Pro*_*ast 2 php session

我正在尝试测试一个没有数据库的简单登录系统,仅用于测试目的.我创建了一个php文件,检查用户名和密码是否有效并注册会话.

<?php
session_start();
define("ADMINUSER", "user");
define("ADMINPASSWORD", "pass");
$user = $_POST['user'];
$pass = $_POST['pass'];
if (($user==ADMINUSER) && ($pass==ADMINPASSWORD))
{
    $_SESSION['logged_in'] = true;
    header("Location: main.php");
}
else
{
    header("Location: auth.php?flag=wrong");
}
?>
Run Code Online (Sandbox Code Playgroud)

并将其包含在其他文件中以检查用户是否已登录:

<? session_start();
if ($_SESSION['logged_in'] != true)
{
    header("Location: auth.php?flag=not");
    exit;
}
?>
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用,因为我关闭窗口并尝试再次打开它并且它不会将我重定向到登录页面(auth.php).

我究竟做错了什么 ?任何帮助表示赞赏.

Jus*_*rce 6

这部分代码:


    $_SESSION['logged_in'] == true;
Run Code Online (Sandbox Code Playgroud)

应该:


    $_SESSION['logged_in'] = true;
Run Code Online (Sandbox Code Playgroud)

=是赋值运算符.

==是一个比较运算符.