PHP动态页面包括

时间:2014-01-01 11:54:52

标签: php url dynamic include

我有一个简单的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');
}

我的问题是如何解决这个问题?

1 个答案:

答案 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');
}