1

我网站的主文件(index.php)代码在这里:

<?php 
include 'header.php';
include 'sidebar.php';
include 'content.php';
include 'footer.php';
?>

但我不希望任何用户通过编写“www.domain.com/header.php”来查看这些包含文件。我应该在这些文件中插入一个php代码还是可能?

4

3 回答 3

9

你有几个选择。

  1. 将文件保存在 webroot 之外(这样它们就不会自动获取自己的 URI)
  2. 配置您的网络服务器,使其拒绝为他们提供服务
  3. 测试是否设置了变量/常量,然后将其设置在允许包含它们的每个文件中。exit如果未设置。
于 2012-05-14T08:53:48.730 回答
7

这是给你的PHP。

if(basename(__FILE__) == basename($_SERVER['PHP_SELF'])){exit();}

简而言之,如果调用文件是它自己,这将退出执行。

来源:http ://thephpcode.blogspot.se/2009/07/creating-include-only-php-files.html

于 2012-05-14T08:55:01.773 回答
2

您可以在主文件中定义一个常量,并在包含的文件中使用它来检测它们是否真的被包含:

索引.php

<?php
define('REALLY_INCLUDED', true);
include'header.php';

头文件.php

<?php
if(!defined('REALLY_INCLUDED') || !REALLY_INCLUDED) {
    exit();
}
...
于 2012-05-14T08:53:40.753 回答