我有一个带有多个单选按钮的表单,它们似乎都工作得很好,直到我尝试进行错误处理。
代码HTML:
<form action="" method="POST">
<input type="radio" name="gender" value="male" checked> Male<br>
<input type="radio" name="gender" value="female"> Female
<input type="submit" value="Submit">
</form>
php:
if (strip_tags(trim(isset($_POST['gender']))) == NULL) {
$error[] = ' Error: please select male or female ';
} else { //if it is set then $uGender should hold post value
$uGender = strip_tags(trim($_POST['gender']));
}
当我尝试使用单选按钮male
或female have been set using
isset()`时,我试图捕捉它是否推出了未定义的变量或未定义的索引。它仍然会在没有任何值的情况下进行post,这会导致SQL错误,因为默认情况下性别字段不能为空值。
另一个问题:它将所有内容发布到数据库中,并将性别字段留空,即使有错误处理程序也是如此?
发布于 2018-07-24 08:53:58
感谢@AbraCadver,@Alex & @Sumithran。我使用合并后的结果来解决问题。
以确保该单选按钮无法发布或显示任何SQL cannot be NULL
错误。
首先,您需要检查变量是否使用isset()
设置,如果没有设置,则只需创建另一个处理程序。
以下是有效的修复:
if (!isset($_POST['Gender'])) {
} else {
$uGender = strip_tags(trim($_POST['Gender']));
}
// then I have the following to double check if its really set or not
if (isset($uGender) == 0) {
$error[] = ' Please Select either Male or Female !';
}
发布于 2018-07-24 02:05:57
您可以简单地使用以下代码来应用该验证:
if ( isset($_POST['gender'])==false ) {
$error[] = ' Error: please select male or female ';
} else { //if it is set then $uGender should hold post value
$uGender = strip_tags(trim($_POST['gender']));
}
发布于 2018-07-24 02:07:34
尝尝这个
if (isset ($_POST['gender']) == 0) {
$error[] = ' Error: please select male or female ';
} else { //if it is set then $uGender should hold post value
$uGender = strip_tags(trim($_POST['gender']));
}
https://stackoverflow.com/questions/51484428
复制相似问题