我有一个主页做了一些验证处理,然后在使用头重定向完成重定向时。所有工作都很好,直到我最近更新了其中一个包含变量的变量。见下文。包括文件发送标头,防止重定向
<?php
session_start();
include "globalvariables.php";
include "../../includes/databaseconnections/$schoolName/database_connection.php";
我没有问题,直到我将$ schoolName添加到字符串。我需要这为我们的自动复制系统(允许用户使用不同的schoolName针对不同客户复制的页面和数据库)
这里是所包含的文件。很简单。
<?php
$schoolName = "fakeschoolname";
?>
我不理解标题是如何被发送的,除非$ schoolName实际上是输出不可见的非服务器端数据。有没有人有任何建议或想法如何补救?还是有更好的方法来动态复制和编辑页面?
你真的不想这样做,摆在首位。除非你仔细检查'$ schoolName'变量,然后再使用它来包含一个文件。这样做会让你容易受到*文件包含攻击*的伤害。如果用户修改变量,他们可以基本上强制你的服务器包含它不应该包含的文件。就像也许PHP文件上传到其他地方的服务器。 – icecub
那么,有什么更好的方式让我在飞行中复制网站?它应该只是一个手动过程? –
我正要编辑你的问题来修正代码块中的缩进,但如果这是它在实际代码中的方式,那可能是问题所在。 '<?php'之前是否有空格? –