1. ホーム
  2. php

[解決済み] この $_SERVER['REQUEST_METHOD'] === 'POST' は何をするのでしょうか?

2022-02-09 14:16:38

質問

phpの初心者で、他の人のコードを読んでいて、こんなのを見かけました。

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        if (isset($_POST['...'])) {

        } else {
            echo "...";
        }
    }

isset(...)がやっていることはわかるのですが、最初のif文の意味がわかりません。特に、リクエストメソッドがGETのときはif文が機能していたのに、リクエストメソッドがPOSTのときは機能していないのです。

どうすればいいですか?

あなたのページをyourpage.phpとします -- このコードが意味するのは、IF文の中のコードの部分は、あなたがフォームを投稿することでyourPage.phpページにアクセスしている場合にのみ実行されるということです。つまり、アドレスバーにyourpage.phpと入力して、そのページを普通に読み込めば、このコードは実行されません。

しかし、もしあなたが何らかの < form action='yourPage.php' > を持っているならば。そのフォームを送信し、yourpage.phpにアクセスしたとき、そのコードはそのときだけ実行されるのです。投稿によってページが来たときです。

基本的には、特定のコードがフォームの投稿後にのみ発生するようにする方法です。例えば、"アンケートに答えてくれてありがとう!" のようなメッセージが、フォームを投稿した後にのみポップアップしますが、まだ同じページ上にあります。