我在页面顶部的PHP中有以下代码行,确保所有表单字段都包含内容并且未提交为空...
if(!isset($_POST['name'])) { $err_name = 1; }
if (!isset($_POST['phone'])) { $err_phone = 1; }
if (!isset($_POST['email'])) { $err_email = 1; }
if ((!isset($_POST['serve'])) && ($_POST['other'] == "")) { $err_serve = 1; }
name是文本输入
电子邮件是文本输入
手机是文字输入
serve是一个复选框数组
其他是文字输入
然后在下面我已经得到以下行,如果没有错误允许php代码继续(上图)
if (($err_name != 1) && ($err_phone != 1) && ($err_email != 1) && ($err_serve != 1)) {
$name = $_POST['name']; // required
$email_from = $_POST['email']; // required
$phone = $_POST['phone']; // required
$serve = $_POST['serve'];
$other = $_POST['other'];
然后我在每个表单字段旁边都有这个...
<?php if ($err_name == 1) { echo '<font color="red">Name cannot be empty</font>'; } ?>
<?php if ($err_phone == 1) { echo '<br /><font color="red">Phone cannot be empty</font>'; } ?>
<?php if ($err_email == 1) { echo '<font color="red">Email cannot be empty</font>'; } ?>
<?php if($err_serve == 1) { echo '<br /><font color="red">You must choose at least 1 area to serve</font>'; } ?>
有人可以帮我弄清楚为什么要做以下事情......
如果我从第二个代码中取出&& ($err_serve != 1)
,那就是一切
除了电话显示错误消息
如果我留下它,只有err_serve会抛出错误。其他人是 忽略,不显示错误。
电话拒绝抛出错误消息。这是$ _POST的所有内容 处理在php。
请注意,所有测试均通过提交完整的空表单来完成
答案 0 :(得分:6)
值设置是否已填充并带有值。如果它是一个空值,它仍然是一个值。
不使用isset()
,而是使用empty()
。它检查是否:
它对复选框起作用的原因是因为未选中复选框时,浏览器不会发送值。这与文本字段相反。浏览器将发送文本字段的值,无论它是否为空。