ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルの $_SERVER[PHP_SELF] と $_SERVER[SCRIPT_NAME] の違い

php_PHP チュートリアルの $_SERVER[PHP_SELF] と $_SERVER[SCRIPT_NAME] の違い

WBOY
WBOYオリジナル
2016-07-21 15:44:47810ブラウズ

"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=”";
仕様によれば、ブラウザがそれをどうするかは未定義です。
現在のブラウザで動作しても、将来のブラウザでは動作しなくなる可能性があります

http://www.bkjia.com/PHPjc/320515.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/320515.html技術記事 「PHP_SELF」 ドキュメントルートに関連する、現在実行中のスクリプトのファイル名。たとえば、URL アドレスが http://www.jb51.net/test.php/foo.bar のスクリプトで $_SERVER['P...
を使用します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。