如何分开标题?

时间:2015-07-19 14:54:00

标签: php html css

我有3个文件:header.php,footer.php和index.php。

header.php和footer.php文件集成在index.html文件中。它运作良好。但我有一个问题。我必须做什么,这样用户将无法单独看到header.php和footer.php文件。我想只在index.php文件中看到。

当我在网址栏中写道:mydomain.com/header.php我不想看到它。

我该怎么办?

3 个答案:

答案 0 :(得分:1)

我看到两个选项

.htaccess文件

您应该使用.htaccess文件。有了它,您可以通过用户,身份验证,IP地址限制对某些文件的访问,或者只限制访问permanantley。像

一样使用它
AuthUserFile /home/header.php
AuthGroupFile /dev/null
AuthName "My Protected Directory"
AuthType Basic

<Limit GET POST PUT>usershere</Limit>

上面的链接和searching around the internet提供了更多信息,这是一个相当常见的问题。

一个common.php解决方案

将所有常用的php放入一个名为common.php的文件中。在其他文件的开头使用require("common.php");,然后让common.php成为一堆函数。

的common.php

<?php
function header() {
    <!DOCTYPE html>
    <html>
        <head></head>
        <body>
}

function footer() {
        </body>
    </html>
}
?>

mypage.php

<?php
require("common.php");
header();

//my code here for this page

footer();
?>

common.php没有任何输出,所以人们可以调用它,什么都不会发生,或者你可以让common.php重定向到你的主页,如

<?php 
header("Location: index.php");
die();

//functions

附加

从上面的答案中分离出评论和意见,我喜欢这两个选项,因为你不需要额外的模块或插件,它们很简单,你可以决定哪个最适合你的用例。如果您想在用户尝试查看common.php时重定向到另一个页面,我会建议第二个选项和我个人的最爱。第一个选项会抛出一个服务器错误,说访问被拒绝,如果你真的想要,你可以拥有,但不会将任何人重定向到任何地方。在编码时,我倾向于使用第二种选择。

最后,两种选择都很棒,这取决于你。

答案 1 :(得分:0)

你可以像Joomla那样做!

Joomla在其index.php中定义了一个变量。 Joomla使用“JEXEC”。在其他文件中,它只是检查变量是否已定义或未定义。这意味着当您在包含header.php之前在索引中定义此变量时,它将显示其上下文,否则您可以显示(如Joomla!)“restricted Access”或只返回404-Header并加载您的404-Document。 / p>

另一种选择是在文件名前使用“#”。没有浏览器可以直接打开该文件,因为它将其作为锚点处理。所以只需将其重命名为#header.php并将其包含在内,并且浏览器无法打开该文件。不确定卷曲等事情。

答案 2 :(得分:0)

有许多解决方案,其中一些已经提到。我是怎么做的,是我在我的文件中定义一个变量,并将其设置为true。然后,您可以使用下面的代码查看是否已设置,如果已设置,则显示页面。这意味着只能通过include来查看它,在包含标题之前设置该变量。

// In your code, you can put this 
$allowInclude = true;
include "header.php";

然后在你的标题中

if (isset($allowInclude) && $allowInclude) { 
    //Header here 
} else {
   // do something 
}

正如我所说,有很多方法,取决于你真正想要的。

(对不起任何和所有糟糕的格式,在移动设备上写这个)