Php 受登录保护的页面不需要登录才能访问

Php 受登录保护的页面不需要登录才能访问,php,mysql,login,Php,Mysql,Login,我编写此脚本是为了防止尚未登录的用户查看某些页面。我试图让它工作,但没有乐趣。如果有人能告诉我出了什么问题,我将不胜感激 <?php session_start(); require_once ("ConnectToMySql.php"); if (!isset($_SESSION['username'])) { header("location:../Login/LoginForm.php"); } ?> 首先,让我们测试用户是否经过身份验证: <?php s

我编写此脚本是为了防止尚未登录的用户查看某些页面。我试图让它工作,但没有乐趣。如果有人能告诉我出了什么问题,我将不胜感激

<?php

session_start();
require_once ("ConnectToMySql.php");

if (!isset($_SESSION['username']))
{
    header("location:../Login/LoginForm.php");
}
?>

首先,让我们测试用户是否经过身份验证:

<?php

session_start();
var_dump($_SESSION); // print all the session to see if $_SESSION['username'] is set
exit;
...
如果到目前为止一切正常,则表示重定向不起作用。 请注意,如果发送了任何输出,则无法再将标题发送到浏览器。如果是这种情况,您需要检查您的文件(也包括像
ConnectToMySql.php
)是否有任何输出。一个常见的错误是在关闭配置文件中的php标记
?>
后添加空格,这很难找到和调试。避免这种情况的一个简单做法是,永远不要将php结束标记
?>
放在只包含php的文件中


根据这些测试,您至少可以找出哪些不起作用。

请详细说明它是如何起作用的。它允许我在不登录的情况下访问该页面。您是否检查了$\u会话以查看它包含哪些数据?很抱歉,答复太长,但我已经离开了。我已经尝试了你的答案,它呼应出用户将受到限制。我已经删除了回音并退出,发现标题不起作用,这就是为什么它没有阻止页面。
if (!isset($_SESSION['username']))
{
    echo "User will be redirected";
    exit;
    header("location:../Login/LoginForm.php");
}