Php pagehandler没有按应有的方式工作
因此,我制作了一个自定义页面处理程序,使我的代码更加清晰。我有它在多个网站上运行,但在我现在工作的网站上它不工作 代码如下:Php pagehandler没有按应有的方式工作,php,Php,因此,我制作了一个自定义页面处理程序,使我的代码更加清晰。我有它在多个网站上运行,但在我现在工作的网站上它不工作 代码如下: <?php $page = $_GET["p"]; include_once("pages/" . $page . ".php"); if($page == "") { header("Location: index.php?p=index"); } ?> 这就是错误: 警告:include_once():
<?php
$page = $_GET["p"];
include_once("pages/" . $page . ".php");
if($page == "") {
header("Location: index.php?p=index");
}
?>
这就是错误:
警告:include_once():在/home/ubuntu/workspace/admin_panel/page-handler.php第3行打开“pages/.php”以包含(include_path=':/usr/share/php:/usr/share/pear)失败
警告:无法修改标题信息-标题已由第5行的/home/ubuntu/workspace/admin_panel/header.php:474中的/home/ubuntu/workspace/admin_panel/page-handler.php发送
它可以在我运行它的所有其他网站上运行
有人知道为什么它不起作用吗?
谢谢。根据OP的要求: 答复意见:
if(!empty($_GET["p"])){
$page = $_GET["p"];
// (do stuff/include)
}
基本上,你的逻辑是错误的。您正在检查是否等于”
,并在设置GET之前尝试包含
检查以下关于发送警告的标题的帖子:
exit代码>在任何标题之后。否则,您的代码可能希望继续执行,如果下面还有更多代码的话
参考:
看起来$\u GET['p']是空的。此外,您应该采取措施确保用户只能访问您希望他们访问的文件。也许创建一个有效页面数组,并检查$page是否是其中之一。@我知道这就是为什么我要做一个if语句。关于文件,这是不需要的。如果(!empty($\u GET[“p”]){$page=$\u GET[“p”];(do stuff/include)}
,则这一切都在不同的服务器中-基本上,您的逻辑是关闭的。您正在检查是否等于”
,并试图在设置GET之前包含。但是,您正在尝试在if语句之前包含页面@弗雷德二世-你的答案对我很有用,你能补充一句吗?这是我不想接受的答案credit@RikNijdeken我对答案做了修改。您可能想重新加载它,以便查看我添加的其他信息。@RikNijdeken不客气,Rik,很高兴能提供帮助,干杯