包含标题与包含页面

时间:2011-02-15 04:50:35

标签: php post include get

我目前在每个页面都使用include 'header.php'include 'footer.php',据我所知,大多数人都是这样做的。我想到了一种我个人认为会更好的方式。我想到制作index.php,然后在索引中包含页面。这样既可以消除对页脚的需求,又可以在每页中消除include两次的需要。我是php的新手,所以我不知道怎么做。我尝试使用POSTGET方法,但它似乎不起作用。我想要实现的是使用诸如http://mysite.com/index.php?page=history之类的URL在页眉中包含页面,然后加载history.php。如果我需要澄清一些事情,请问。对不起,如果我马上不接受答案,我真的很困倦。我会尽可能的。

3 个答案:

答案 0 :(得分:1)

如果在文件中包含2个页面,例如header.php和footer.php,则不会出现问题... 只需在每页中写两行代码就不是问题。

您可以使用if语句决定要在每个页面中动态包含哪些页面,而不是在网址中传递页面名称。

答案 1 :(得分:1)

如果您通过index.php进行,您无疑会做错 没什么不好的 - 每个新手都是这样做的 仅仅因为您正在考虑包含,而您应该考虑模板

你可以通过index.php制作,没问题。但是这个索引中不应该只有一个HTML标签!以及在实际页面中。

无论您是在单独的页面中还是通过index.php执行此操作,该方案都应该是相同的:

  1. 获取显示特定页面所需的所有数据。
  2. 调用模板。
  3. 因此,您的常规页面看起来像

    code
    code
    code
    
    include 'template.php';
    

    而index.php看起来像

    get page name
    sanitize page name
    include page
    include 'template.php';
    

    现在您可以决定选择什么

答案 2 :(得分:0)

首先,我同意Meager ...看看soem框架。大多数人会使用两步观点,这种观点基本上以更复杂和灵活的方式进行。

据说它看起来像这样:

<?php 
$page = isset($_GET['page']) ? $_GET['page'] : 'home'; // default to home if no page

if(file_exists($page.'.php')) {
  // buffer the output so we can redirect with header() if necessary
  ob_start();
  include($page.'.php');
  $content = ob_get_clean();

}
else
{
  // do something for error 404
}
?>
<html>
  <head></head>
  <body>
    <?php echo $content; ?>
  </body>
</html>

你可能会变得更复杂。你要做的一件事是确保你不要盲目地认为$_GET var中的页面是安全的......确保你的服务器上存在该文件或以其他方式消毒它......

相关问题