空无线电输入验证

时间:2017-12-27 12:09:25

标签: php

我有一个包含无线电输入的表格。无线电输入可以是0,1或enot选择。我正在尝试进行输入验证,以确保在将值发布到数据库之前,这些值仅为0或空。不知何故,以下代码不起作用。

有人可以帮帮我吗?

$posttodatabase = true;
$array = (0, 1);
if (!in_array($_POST['x'], $array) && isset($_POST['x'])) {
    $posttodatabase = false;
};

编辑:附表:

        <form action='registration.php' method=POST>
          <input type="radio" name="x" value=0> Foo
          <input type="radio" name="x" value=1> Bar
          <input class="button" type=submit value='Submit'>
        </form>

1 个答案:

答案 0 :(得分:1)

请勿将$posttodatabase默认设置为true,并在不符合要求时将其更改为false。反过来使用它以确保在满足要求时值仅设置为true(值存在且是预期值之一)。

$posttodatabase = false;
if (!isset($_POST['x']) OR                  // is not set OR
    (
        isset($_POST['x']) AND              // is set and...
        in_array($_POST['x'], array(0, 1))  // ... one of these values
    )) {
    $posttodatabase = true;
}

(或直接指定值......)