$_SERVER['REQUEST_METHOD'] が常に GET なのはなぜですか? 質問する

$_SERVER['REQUEST_METHOD'] が常に GET なのはなぜですか? 質問する

これについては少し混乱しています。私が見逃していた、非常に明白なことであることを願っています。非常に単純なフォームがあります:

<form class="form-signin" role="form" name="login" method="POST" action="/page">
  <input type="password" name="password" />
  <input type="submit" value="Sign in" />
</form>

注記:このページは/page次の HTML に存在し、その後にエコーされます。

/pageファイルの一番上にこれがあります:

<?php
var_dump($_SERVER['REQUEST_METHOD']);

どういうわけか、それはいつもGETこのフォームを送信するとと表示されます。action="/page"部分を削除すると と表示されますPOST。ここで何が足りないのでしょうか?

注記:ページをロードし、上記のvar_dump()呼び出しの後に exit を実行しても、まだ表示されますGET

検査官のタイムラインでは、リクエストに対して次のように表示されます。

ここに画像の説明を入力してください

ベストアンサー1

私の質問に対するコメントのおかげで、答えはApacheの設定にあることがわかりました。index.phpファイルが というフォルダ内にあるためpage、Apacheは自動的にスラッシュの付いたページにリダイレクトするようです。これはApacheのデフォルト設定です。ディレクトリスラッシュドキュメント

これをオフにしないように警告されているので、投稿する URL を変更するだけです。または、もちろん、.htaccess適切な書き換えルールを設定したファイルを追加することもできます。\

皆さんのご協力に感謝します。ちなみに、この場合、Safari のインスペクターでは少し物足りなさを感じました。テストには Chrome の方がはるかに良い選択肢であることがわかりました。

おすすめ記事