PHP重定位标头无法正常工作

时间:2015-12-23 17:53:19

标签: php jquery header relocation

我已经编写了一个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。

对问题可能是什么的任何想法?

1 个答案:

答案 0 :(得分:1)

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

  

请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。使用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>
在标题调用之前

,它将失败。