我有一个简单的PHP脚本,包含一个文件,当它通过URL请求时。
举个例子:http://example.com/index.php?page=about 所以这包括about.inc
页面这是有效的,但我有另一个问题。当有人访问主页时: http://example.com/。它会告诉我这个
Undefined index: beta in /home/admin/domains/mydomainname.nl/public_html/index.php on line 3
那是:
$page = $_GET['page'];
我知道我可以在PHP中禁用错误通知,但这不是解决方案,而是解决方法。
$path = 'app/inc/pages/dynamic/';
$page = $_GET['page'];
$php = '.inc';
$both = $path . $page . $php;
$pages = array('index', 'home', 'about', 'contact');
if (!empty($page)) {
if(in_array($page,$pages)) {
//$page .= '.php';
include($both);
}
else {
include('app/inc/pages/dynamic/404.inc');
}
}
else {
include('app/inc/pages/dynamic/home.inc');
}
}
确实包含主页
else {
include('app/inc/pages/dynamic/home.inc');
}
我的问题是如何解决这个问题?
答案 0 :(得分:1)
试试这个:用这个替换3不行:
$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : '';
如果没有提供页面,它将在$page
变量中设置为空。 $ path中有两个$
。
完整代码:
$path = 'app/inc/pages/dynamic/';
$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : '' ;
$php = '.inc';
$both = $path . $page . $php;
$pages = array('index', 'home', 'about', 'contact');
if (!empty($page)) {
if(in_array($page,$pages)) {
//$page .= '.php';
include($both);
}
else {
include('app/inc/pages/dynamic/404.inc');
}
}
else {
include('app/inc/pages/dynamic/home.inc');
}