我有一个主页面进行一些身份验证处理,然后使用标题重定向完成重定向。一直运作良好,直到我最近更新其中一个包含携带变量。见下文。
<?php
session_start();
include "globalvariables.php";
include "../../includes/databaseconnections/$schoolName/database_connection.php";
在将$ schoolName添加到字符串之前,我没有遇到任何问题。我需要这个用于我们的自动复制系统(允许用户使用不同的schoolName为不同的客户复制页面和数据库)
这是包含的文件。非常简单。
<?php
$schoolName = "fakeschoolname";
?>
我不了解标头是如何发送的,除非$ schoolName实际输出不可见的非服务器端数据。有没有人对如何解决这个问题有任何建议或想法?或者有更好的方法来动态复制和编辑页面吗?
答案 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只会清除一行空格。因为我包含了文件,并且在标题重定向之前有两个空格。这就是导致它失败的原因。