11

PHPスクリプトが直接アクセスされているか、含まれているかを確認する方法はありますか?

  1. それが含まれている場所がないと仮定すると、セッション変数を設定しても問題は解決しません。どこに入っているか確認できません。20ヶ所以上あるかもしれません!
  2. PHPスクリプトで検出する必要があります。(php 関数と変数経由)
4

2 に答える 2

3

ceejayozの回答を使用しましたが、シンボリックリンクされたファイルとパスを使用すると__FILE__、実際のパスに自動的に解決されるため、問題が発生します。realpath()そのため、代わりに関数 onを使用$_SERVER['SCRIPT_FILENAME']して、両方のパスを実際のパスに解決し、問題を解決しました。

if(__FILE__ != realpath($_SERVER['SCRIPT_FILENAME'])) {
    // we're in an include
}
于 2014-04-27T02:07:53.623 に答える