"PHP_SELF"
ドキュメント ルートに関連する、現在実行中のスクリプトのファイル名。たとえば、URL アドレス http://www.jb51.net/test.php/foo.bar を持つスクリプトで $_SERVER['PHP_SELF'] を使用すると、結果は /test.php/foo.bar になります。 __FILE__ 定数には、現在の (つまり、ファイルを含む) ファイルの絶対パスとファイル名が含まれます。
"SCRIPT_NAME"
現在のスクリプトへのパスが含まれます。これは、ページがそれ自体を指す必要がある場合に便利です。 __FILE__ には、現在のファイル (インクルード ファイルなど) の絶対パスとファイル名が含まれます。
主な理由は次のとおりです: $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
より良い理由は次のとおりです:
今すぐ Dreamhost に PHP のセットをインストールしてください。プログラムを実行すると、接続されたアドレスに余分な CGI システムが存在することがわかりましたが、プログラムの設定には問題はありませんでした。情報を確認したところ、問題の原因は SCRIPT_NAME と PHP_SELF の違いであることがわかりました。
通常、このマシンで $_SERVER['SCRIPT_NAME'] と $_SERVER['PHP_SELF'] をテストしても、ほとんどの PHP は CGI モードで実行されないため、おそらく違いは見られません。
ただし、DreamHost 上の PHP は CGI モードで実行されるため、この 2 つには明らかな違いがあります。
echo $_SERVER['SCRIPT_NAME']; // (/cgi-system/php.cgi)
echo $_SERVER['PHP_SELF'] // (/admin/test.php)
http://lists よりメモは .nyphp.org/pipermail/talk/2005-April/015339.html で見つかりました。外国人が言ってた。
SCRIPT_NAME は、このスレッドで言及されているすべての問題を解決します
- これは、ユーザーによって付け加えられる可能性のある余分なゴミを含まない、単なるスクリプト名です
そのため、このスレッドでは、
安全にするために PHP_SELF から削除されたゴミは、本当に、
ポイントが欠けています - 代わりに SCRIPT_NAME を使用してください。FORM ACTION=”";
仕様によれば、ブラウザがそれをどうするかは未定義です。
現在のブラウザで動作しても、将来のブラウザでは動作しなくなる可能性があります