人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

インクルード用の PHP ファイルを直接実行できないように、下記のようなスクリプトを
書いています。他にいい方法はあるでしょうか? include する側で何か定数を決めていて
それがないとはねる方式があるのですが、それだと、他のスクリプト依存になります。できるだけ
単独でも機能するのがいいと思って次のようなコードを書いています。
if (basename($_SERVER['PHP_SELF']) == 'hogehoge.php') {
exit();
}


●質問者: isogaya
●カテゴリ:インターネット ウェブ制作
✍キーワード:EXIT PHP インクルード コード スクリプト
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● pahoo
●27ポイント

質問者さんのコードを少しだけアレンジしてみました。

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

参考サイト

◎質問者からの返答

これが正解っぽいですね。


2 ● b-wind
●27ポイント

単純に、include される側は「関数の定義」だけして、include する側はその関数を呼び出すようにすればよいのでは?

PHP: include - Manual

◎質問者からの返答

何かを実行する場合もあるかもしれません。


3 ● pahoo
●26ポイント

Apacheを使っているという前提ですが、.htaccessでアクセス拒否するという方法もあります。

includeされるファイルを単独実行することがないのであれば、拡張子を ".inc" などに変更し、incファイルがあるディレクトリに下記のような .htaccess を配置し、リモートからのアクセス拒否を設定します。

<Files ~ "\.inc$">
deny from all
</Files>

参考サイト

◎質問者からの返答

ファイル以外では対応できない状況を考えているので、.htaccess よりはまずファイルで考えています。

本来ならば、DocumentRoot の外に出してしまえばいいのですし、また、クラスや関数のみであれば問題ないともいえます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ