制作没有框架的网站

时间:2010-03-13 10:26:52

标签: php html frames

我想制作我的主页,没有框架,如果我只是将我的设计拆分为index.php,那么它是header.php / footer.php,然后只是将它们包含在每一页上?

5 个答案:

答案 0 :(得分:5)

是的,您可以将index.php拆分为header.php / footer.php,然后将它们包含在每个页面上。 请注意,您的页面可以不是静态HTML而是PHP脚本,以显示带有一个脚本的多个页面 我建议也没有像

那样的普通结构
include 'header.php';
//do some stuff
include 'footer.php';

但另一种结构,更有用:

//do some stuff, retrieve all data.
include 'header.php';
include 'page.php'; //include page template
include 'footer.php';

答案 1 :(得分:2)

我建议你使用一个框架。大多数框架(如果不是全部)都有简单的模板系统,因此您不必重复代码。

答案 2 :(得分:1)

在您网站的每个页面中包含内容的建议解决方案的问题是,如果您想要包含其他内容,请更新网站的所有页面,例如侧边栏。

更好的想法是不要有脚本 - 页面连接。因此,您每页要编写一个php文件。相反,使用一个前端控制器文件,大多数使用网站根目录中的index.php。然后使用Apache mod_rewrite或其他服务器技术在您网站的URL中具有灵活性。然后让index.php映射不同的URL请求以提供不同的页面,然后您可以将站点的所有页面放入数据库或其他地方。

这样,您网站中只有一个点包含页眉和页脚的模板,因此可以轻松更改,您可以使用站点的根目录来提供AJAX请求,您不希望在其中输出例如,HTML但是JSON。

Afaik这是一个很好的解决方法。

答案 3 :(得分:0)

另一个想法是只有一个单一的入口点,用GET参数调用,例如?site=about。您的index.php可能如下所示:

<?php
// whitelist of allowed includes
$allowedIncludes = array('home', 'about', 'error404'); // etc.
// what to include if ?site is not set at all / set to an illegal include
$defaultInclude = 'home';
$errorInclude = 'error404';

// if site is not set, include default
$site = (empty($_GET['site'])) ? $defaultInclude : $_GET['site'];
// if site is illegal, include error page
$include = (in_array($site, $allowedIncludes)) ? $site : $errorInclude;

// actual includes
include 'header.php';
include $include.'.php';
include 'footer.php';

因此,您只需要包含header.phpfooter.php一次,并完全控制允许的内容和不允许的内容(包含的文件可能位于只有php可以访问的目录中)。在index.php处理请求时,home.phpabout.php无需了解header.phpfooter.php(您可以在以后轻松替换它们)时间)。

如果您不喜欢http://www.example.com/?site=about,可以查看mod_rewrite和朋友。

答案 4 :(得分:-1)

您可能想要为此设置会话。只要访问者在您的网站上,就会存在会话变量:

<?php
    session_start(); // Remember that session_start(); must be the first line of your PHP and HTML-code

    if($add_a_message){
        $_SESSION['message'] = 'Message';
    }

    if($destroy_message){
        $_SESSION['message'] = '';
    }

    // echo this message
    if(isset($_SESSION['message']) && strlen($_SESSION['message']) > 0){
        echo '<strong>' . $_SESSION['message'] . '</strong>';
    }
?>