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. それらのサービスの提供を拒否するように Web サーバーを構成する
  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

メインファイルで定数を定義し、インクルードファイルでそれを使用して、それらが実際に含まれているかどうかを検出できます。

index.php

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

header.php

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