そのため、しばらくの間、次を使用して投稿データが設定されているかどうかを確認しています。
if( ! empty( $_POST ) ) { }
しかし、最近、上記は「ハック」であり、以下は正しい「より良い」方法であるという投稿をたくさん見てきました。
if( $_SERVER[ 'REQUEST_METHOD' ] === 'POST' ) { }
最近とは、最近見つけたばかりという意味です。この後の方法について議論している投稿はすべて2009年のものです。コーディング標準では少し古いので、このトピックについて新鮮な意見を得ても問題ないと思います。
2つの方法が異なることを理解するようになりました。1 つ目は、post 配列が設定されているかどうかをチェックするだけの「ハック」と見なされます。これは、post リクエストが行われた場合に発生します。2 つ目は、実際にサーバーをチェックして、投稿要求が行われたかどうかを確認します。2番目の方がもう少し安全かもしれないと思いますが、とにかく情報がクレンジングされた場合、それがどのように大きな違いを生むかわかりません.
PHP はこの時点でまだグローバルを使用していたため、後者は PHP バージョン <= 4 でのみ使用されたという投稿も見ました。$_REQUEST
これは、PHP コーダーが特定の要求パラメーターのソースを決定するために使用した方法でした。古い投稿で提起されている質問は私のものと同じであるため、最後のステートメントがどれほど正確かはわかりません. 彼らはポストグローバルを使用し、リクエストは使用しません。ただし、これは他のどの投稿よりも最近の投稿 (2011 年) であり、信頼できる情報源からのものです。だから私はそれをどうするかわかりません。
そして、get をチェックするときに何をすべきか? サーバーリクエストメソッドがこのインスタンスでは機能していないようだと言っている場所をいくつか見てきました.postがgetに取って代わり、リクエストメソッドが1つのパラメーターしか保持できないためだと推測できます. 投稿データと取得データの両方がある場合、どうしますか? これらの投稿の 1 つに対するコメントは、post と get の代わりに request global を使用することを提案していますが、それは悪い考えであるという印象を受けてきました。
これは私が見つけた最新の情報源であり、送信する前に横にある同様の質問に目を通しました. 送信値を使用してフォームが渡されたかどうかを確認することについて具体的に尋ねていますが、リクエストメソッドについても言及しています。その多くは、後者がまだ一般的に使用されていることを示しているようです。それで、このアドバイスはまだ有効ですか?リクエストメソッドをチェックすることはまだ最良の選択肢ですか?