包含文件发送标头,防止重定向

时间:2016-08-20 23:32:09

标签: php html include

我有一个主页面进行一些身份验证处理,然后使用标题重定向完成重定向。一直运作良好,直到我最近更新其中一个包含携带变量。见下文。

        <?php
        session_start();
        include "globalvariables.php";
include "../../includes/databaseconnections/$schoolName/database_connection.php";

在将$ schoolName添加到字符串之前,我没有遇到任何问题。我需要这个用于我们的自动复制系统(允许用户使用不同的schoolName为不同的客户复制页面和数据库)

这是包含的文件。非常简单。

<?php
$schoolName = "fakeschoolname";
?>

我不了解标头是如何发送的,除非$ schoolName实际输出不可见的非服务器端数据。有没有人对如何解决这个问题有任何建议或想法?或者有更好的方法来动态复制和编辑页面吗?

2 个答案:

答案 0 :(得分:1)

检查您是否有名为“../../includes/databaseconnections/fakeschoolname/database_connection.php”的文件。如果文件不存在,PHP警告可能会导致问题

答案 1 :(得分:0)

我弄明白了这个问题,这几乎让我疯狂。问题是由globalVariable.php文件中关闭我的PHP标记后的两个空行引起的。

它应该如我的问题所示,但我注意到在我的IDE中我有两个额外的空格。

<?php
$schoolName = "fakeschoolname";
?>
BLANKLINE
BLANKLINE

我发现另一篇文章How to fix "Headers already sent" error in PHP解释说PHP只会清除一行空格。因为我包含了文件,并且在标题重定向之前有两个空格。这就是导致它失败的原因。