ホームページ > バックエンド開発 > PHPチュートリアル > Windows 2003サーバーphpの$_SERVER[PHP_SELF]と$_SERVER[SCRIPT_NAME]の違い

Windows 2003サーバーphpの$_SERVER[PHP_SELF]と$_SERVER[SCRIPT_NAME]の違い

WBOY
リリース: 2016-07-29 08:40:39
オリジナル
829 人が閲覧しました

"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 からのゴミの除去は、実際には
の点を欠いています。代わりに FORM ACTION="" を使用しないでください。
仕様によれば、ブラウザがそれをどのように扱うかは未定義です。現在のブラウザで動作しても、将来のブラウザでは動作しなくなる可能性があります
上記は、Windows 2003 Server の内容も含めて、Windows 2003 Server の PHP における $_SERVER[PHP_SELF] と $_SERVER[SCRIPT_NAME] の違いを紹介したもので、PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート