気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. PHPエラーの原因と対策
  2. 8 view

直接アクセスされたインクルードファイルで処理を終了する

function.phpなど、ブラウザから直接アクセスされる用事のないファイルについて、直接アクセスされたときは処理を終了したい場合、__FILE__と$_SERVER[“SCRIPT_NAME”]を使う方法があります。

○__FILE__と$_SERVER[“SCRIPT_NAME”]
__FILE__ — 処理が記述されたファイル名
$_SERVER[“SCRIPT_NAME”] — 実行されたファイル名

function.phpがインクルードされると、実行されたファイル名は「test.php」など、インクルードしたファイル名になるので、この2つは異なる値になります。

function.phpに直接アクセスした場合、この2つの「ファイル名」は同じになります(パス情報が含まれるので一致はしません)。

これを利用して、直接アクセスされた場合に処理を終了する場合は、$_SERVER[“SCRIPT_NAME”]と__FILE__のファイル名の部分が一致する場合は処理を終了するというコードをfunction.phpなどの先頭で実行する方法があります。

<?php
if (basename($_SERVER["SCRIPT_NAME"]) == basename(__FILE__)) {
    echo "直接アクセスなので処理終了";
    exit;
}
…略…
?>

○実行結果(このファイルに直接アクセスした場合)

直接アクセスなので処理終了

PHPスクリプトへの直接アクセスではなく、テキストファイルなどのデータファイルへの直接アクセスを防ぐ方法は、次の記事を参考にしてください。

【関連記事】データが丸見えになっていませんか?

PHPエラーの原因と対策の最近記事

  1. PHPの関数や変数の前にあるアットマークの意味は?

  2. 「http:// wrapper is disabled in the server co…

  3. php.iniの場所

  4. 「Warning: array_key_exists()」と表示されるとき

  5. 「Warning: A non-numeric value encountered」と表示…

関連記事

PAGE TOP