29

$_POST が設定されているかどうかを検出する方法を知りたいです。

今、私はそれを次のように検出します:

if(isset($_POST['value']))

しかし、値がもう設定されているかどうかは見ていません。基本的に、すべての POST が機能します。

if(isset($_POST))

PHPがこれをどのように処理するかはわかりません。PHP グローバルなので、おそらく isset($_POST) は常に true を返しますか?

基本的に、どうすればこれを行うことができますか?

4

6 に答える 6

63

試してみてください:

if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {}

スクリプトが POST されたかどうかを確認します。

追加のデータが渡された場合は$_POST空になりません。それ以外の場合は空になります。

emptyメソッドを使用して、データが含まれているかどうかを確認できます。

if ( !empty($_POST) ) {}
于 2013-03-05T09:55:06.410 に答える
13

$_POST配列です。確認してもいい:

count($_POST)

ゼロより大きい場合は、いくつかの値が投稿されたことを意味します。

于 2013-03-05T09:57:39.590 に答える
3

簡単な解決策は、単に使用することかもしれません

if (!empty($_POST))
于 2013-03-05T09:55:58.163 に答える
3

以下のように使用してください。とsuper globalをチェックするときは常に true を返すためです。issetempty

<?php
    if($_POST)
    {
        echo "yes";
    }
?>
于 2013-03-05T09:57:18.153 に答える
2

この回答がすでに回答されていることは知っていますが、クラスの1つで投稿が設定されているかどうかを判断するために使用している簡単な方法を次に示します(おそらく誰かが役立つと思うでしょう):

public function isPost($key = null) {

    if ($_SERVER['REQUEST_METHOD'] != 'POST') {

        return false;

    }

    if (!empty($key)) {

        return isset($_POST[$key]);

    }

    return true;

}
于 2013-10-18T15:16:04.110 に答える