首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >未设置和已设置单选按钮的PHP错误,如果已设置或未设置,则post时会出现$_POST错误

未设置和已设置单选按钮的PHP错误,如果已设置或未设置,则post时会出现$_POST错误
EN

Stack Overflow用户
提问于 2018-07-24 01:39:03
回答 3查看 250关注 0票数 0

我有一个带有多个单选按钮的表单,它们似乎都工作得很好,直到我尝试进行错误处理。

代码HTML:

代码语言:javascript
复制
 <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:

代码语言:javascript
复制
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']));

    }

当我尝试使用单选按钮malefemale have been set usingisset()`时,我试图捕捉它是否推出了未定义的变量或未定义的索引。它仍然会在没有任何值的情况下进行post,这会导致SQL错误,因为默认情况下性别字段不能为空值。

另一个问题:它将所有内容发布到数据库中,并将性别字段留空,即使有错误处理程序也是如此?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-24 08:53:58

感谢@AbraCadver,@Alex & @Sumithran。我使用合并后的结果来解决问题。

以确保该单选按钮无法发布或显示任何SQL cannot be NULL错误。

首先,您需要检查变量是否使用isset()设置,如果没有设置,则只需创建另一个处理程序。

以下是有效的修复:

代码语言:javascript
复制
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 !';
    }
票数 0
EN

Stack Overflow用户

发布于 2018-07-24 02:05:57

您可以简单地使用以下代码来应用该验证:

代码语言:javascript
复制
    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']));

    }
票数 0
EN

Stack Overflow用户

发布于 2018-07-24 02:07:34

尝尝这个

代码语言:javascript
复制
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']));

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51484428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档