PHP重定位标头不工作


PHP relocation header not working

我已经编程了一个web应用程序,它要求您首先登录,然后才能访问应用程序的实际内容。

当用户进入主页时,我将值"logedIn"设置为false,如下所示:

<?php
    $_SESSION['logedIn'] = "false";
?>

如果用户试图转到overview.php,代码会检查logedIn的值是否等于"true"。如果不是,则标题会将窗口重新定位到登录页面,如下所示:

<?php
session_start();
?>
<html>
<head>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    <script src="https://jquery-ui.googlecode.com/svn-history/r3982/trunk/ui/i18n/jquery.ui.datepicker-nl.js"></script>
    <script src="../javascript/overview.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="../css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="../css/mainpage.css">
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
</head>
<body>
    <?php
        if($_SESSION['logedIn'] != "true") {
            header("Location: ../index.php");
            exit();
        }
    ?>
    <div class="container-fluid z-container">
        <div class="row z-overview-top-menu">
            <div class="col-md-2 z-background-dark z-top-nav z-border-right" id="menu_logo">
                <h3>Logo</h3>
            </div>
            <div class="col-md-2 z-top-nav z-item-hover z-border-right z-selected" id="menu_diary" onclick="changeMenu('diary')">
                <h3>Dagboek</h3>
            </div>
            <div class="col-md-2 z-top-nav z-item-hover z-border-right" id="menu_pazo" onclick="changeMenu('pazo')">
                <h3>Pazo</h3>
            </div>
            <div class="col-md-2 z-top-nav z-item-hover z-border-right" id="menu_counter" onclick="changeMenu('counter')">
                <h3>Tellers</h3>
            </div>
            <div class="col-md-2 z-top-nav z-item-hover z-border-right" id="menu_overview" onclick="changeMenu('overview')">
                <h3>Overzicht</h3>
            </div>
            <div class="col-md-2 z-top-nav z-item-hover" id="menu_comparison" onclick="changeMenu('comparison')">
                <h3>Vergelijking</h3>
            </div>
        </div>
        <div class="row">
            <div class="col-md-2 z-overview-left-menu">
                <ul class="z-left-list" id="userList"></ul>
            </div>
            <div class="col-md-10 z-overview-main-menu">
                <ul id="overviewList" class="z-overview-list-main">
                </ul>
            </div>
        </div>
    </div>
</body>

当我用echo替换头时,我会得到一个响应,表明当我运行代码时,头确实在执行。

此外,在任何目录中都没有.htaccess。

有什么想法吗?

http://php.net/manual/en/function.header.php

请记住,在发送任何实际输出之前,必须调用header(),无论是通过普通的HTML标记、文件中的空行还是从PHP发送。使用include或require函数或其他文件访问函数读取代码,并且在调用header()之前输出空格或空行,这是一种非常常见的错误。使用单个PHP/HTML文件时也存在同样的问题。

由于您正在输出:

<html>
<head>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    <script src="https://jquery-ui.googlecode.com/svn-history/r3982/trunk/ui/i18n/jquery.ui.datepicker-nl.js"></script>
    <script src="../javascript/overview.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="../css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="../css/mainpage.css">
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
</head>
<body>

在头调用之前,它将失败。