无法检查$ _POST变量是否为空

时间:2012-04-23 08:49:16

标签: php post

我需要验证一个表单,因此我正在编写一个PHP类来实现这一点。我需要检查是否已设置$_POST变量,以确定是否显示错误消息。所以我已经实现了两个方法似乎没有按照我的预期工作,因为即使我将表单保留为空白,也会将其处理为数据已填入,我只是不明白。

private function isSubmitted($field) {
    if (!array_key_exists($field, $_POST)) {
        return false;
    } else {
        return true;
    }
}

private function hasContent($field) {
    if (!empty($_POST[$field])) {
        return false;
    } else {
        return true;
    }
}

3 个答案:

答案 0 :(得分:3)

  1. 即使字段为空,也会以""(空字符串)作为其内容提交。因此,array_key_exists将返回true
  2. if not empty return false与你想要做的事情相反。
  3. 缩写你的布尔返回return array_key_exists($field, $_POST);应该被认为是更健全,至少更简洁。

答案 1 :(得分:2)

private function hasContent($field) {
    if (!empty($_POST[$field])) {
        return true;
    } else {
        return false;
    }
}

我认为你应该做一个小改动。你还应该检查现有数组是否有值或是否为空。

答案 2 :(得分:2)

我认为你可以尝试这样的事情

private function isSubmitted($field) {
    return isset($_POST[$field]);
}

private function hasContent($field) {
    return !empty($_POST[$field]);
}