我目前使用以下脚本检查我的数组中是否存在某个页面然后打开它,否则会打开我的error.php
<?php
$page = $_GET['page'];
$pages = array('p_1',
'p_2',
'p_3',
'error');
if (!empty($page)) {
if(in_array($page, $pages)) {
$page .= '.php';
require_once('../' . $page . '');
}
}
else {
require_once('../error.php');
}
?>
无意中(直到现在我没有测试它)我在我的网站上添加了一个newpage.php,忘了把它添加到我的阵列中。
但我的脚本不是显示我的error.php而是打开了newpage.php。
我哪里出错了?
谢谢
答案 0 :(得分:4)
很抱歉这么说,但是不可能。不在这段代码中。搜索要求/包括其他地方
并且,只有在$_GET['page']
为空的情况下才会显示error.php
<?php
$page = $_GET['page'];
$pages = array('p_1',
'p_2',
'p_3',
'error');
if (!empty($page)) {
if(in_array($page, $pages)) {
$page .= '.php';
require_once('../' . $page . '');
}
else require_once('../error.php');
}
else require_once('../error.php');
?>
是正确的
答案 1 :(得分:1)
我不知道为什么它打开newpage.php而没有看到你的其余代码,但我可以告诉你为什么它没有显示error.php页面
如果$ _GET ['page']“为空”,则代码仅显示error.php(即null,0,'')。 要修复它,您应该尝试以下代码:
<?php
$page = $_GET['page'];
$pages = array('p_1',
'p_2',
'p_3',
'error');
if(!empty($page) && in_array($page, $pages)) {
$page .= '.php';
require_once('../' . $page . '');
} else {
require_once('../error.php');
}
&GT;