我有一个包含无线电输入的表格。无线电输入可以是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>
答案 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;
}
(或直接指定值......)