这是使用PHP创建动态网页的好方法吗?

时间:2011-10-15 22:38:20

标签: php dynamic redirect

我正在尝试使用PHP中的include()创建动态网页。 这个PHP页面有以下代码 - 字面意思是,所有文件都包含:

<?php
session_start();
$dbName = $_REQUEST['DBName'];
$tbName = $_REQUEST['TBName'];
$dbType = $_REQUEST['DBType'];

include('header.php');
switch($dbType)
{
    case 'Calender':
        include('CalenderPage.php');
        exit;
    case 'News':
        include('NewsPage.php');
        exit;
    case 'Gallery':
        include('GalleryPage.php');
        exit;
}
include('footer.php');
?>

您认为这是创建动态PHP页面的好方法吗?

4 个答案:

答案 0 :(得分:2)

你展示的是完美的。使用数组可以做得更简单:

<?php
session_start();
// Explicitly using $_GET or $_POST is better than $_REQUEST
$dbName = $_GET['DBName'];
$tbName = $_GET['TBName'];
$dbType = $_GET['DBType'];

include('header.php');

// be sure to have an array of allowed pages 
// so people can't access pages they're not supposed to access
$allowed_pages = array("Calender", "News", "Gallery");

if (in_array($dbType, $allowed_pages))
 include($dbType."Page.php");
else
 die("Unknown page");

include('footer.php');
?>

答案 1 :(得分:1)

就个人而言,我不喜欢include()函数来创建动态php页面。我发现很难避免变量在不同的php文件中发生冲突。假设在NewsPage.php文件中你会更改$dbName,这可能会导致主页面出现问题而你可能没有意识到出了什么问题。

我只包含带有类/函数的文件,这样我可以控制在包含的php文件中执行的代码,并且调试代码更容易。

答案 2 :(得分:0)

这对初学者来说很好,但请注意你的DRY问题,你要添加的每一页,你会写另外3行。 以这种方式维持它是不可能的。 我看到你在dbType和page之间有一个名称约定,试试:

include($dbType + 'Page.php');

而不是开关块

答案 3 :(得分:0)

此页面样式的名称是模板。它似乎与选择要显示的内容的任何其他方式一样有效。