如何检测是否设置了$ _POST?

时间:2013-03-05 09:53:56

标签: php post

我想知道如何检测是否设置了$ _POST。

现在我发现它是这样的:

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

但我不知道是否已经设定了价值。基本上,任何POST都可以。

if(isset($_POST))

我不确定PHP如何处理这个问题。 Perhabs isset($ _ POST)总是返回true,因为它是PHP全局?

基本上,我该怎么做?

6 个答案:

答案 0 :(得分:56)

尝试:

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

检查您的脚本是否已发布。

如果传递了其他数据,$_POST将不会为空,否则将为空。

您可以使用empty方法检查它是否包含数据。

if ( !empty($_POST) ) {}

答案 1 :(得分:12)

$_POST是一个数组。你可以查看:

count($_POST)

如果大于零,则意味着发布了一些值。

答案 2 :(得分:3)

一个简单的解决方案可能就是使用

if (!empty($_POST))

答案 3 :(得分:3)

只需使用如下。因为它是super global所以在检查issetempty时它始终会返回。

<?php
    if($_POST)
    {
        echo "yes";
    }
?>

答案 4 :(得分:2)

我知道这个答案已经得到了回答,但这里有一个简单的方法,我在我的一个课程中使用它来确定帖子是否已经设置(也许有人会发现它很有用):

public function isPost($key = null) {

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

        return false;

    }

    if (!empty($key)) {

        return isset($_POST[$key]);

    }

    return true;

}

答案 5 :(得分:-1)

检查$ _POST的最佳方法

<?php 
if(isset($_POST['value']) && !empty($_POST['value']))
{
return true;
}
else
{
return false;
}