error_reporting(0)函数,表单中的空变量错误

时间:2015-09-21 00:35:17

标签: php

更多说明: 我的注册表格中有一个名称=“同意”的复选框,用户必须标记此值=“同意”才能完成注册过程,如果此复选框未标记错误消息将显示给用户。作为测试,我尝试提交表单而不标记此复选框但我发现此INDEX错误出现说:[注意:未定义索引:同意]甚至用户的错误消息也出现了。

我的表单中有一个复选框和无线电字段,这些字段是可选的。因此,当我提交表单并且这些值为空时,我会收到INDEX错误。有没有办法避免错误而不使用error_reporting(0)功能:

<form action="" method="post">
    <div class="checkbox">
        <label>
             <input type="checkbox" name="agree" value="agree">
        </label>
    </div>
</form>

<?php
   if (isset($_POST['submit'])) {
      $agree = $_POST['agree'];
   }
?>

1 个答案:

答案 0 :(得分:0)

您应该使用issetempty函数的条件。假设您使用agree作为位值,您可以使用三元运算符来设置如下值:

<form action="" method="post">
    <div class="checkbox">
        <label>
             <input type="checkbox" name="agree" value="agree">
        </label>
    </div>
</form>

<?php
   if (isset($_POST['submit'])) {
      $agree = !empty($_POST['agree']) ? 1: 0;
   }
?>

根据empty manual

  

如果变量不存在,则不会生成警告。这意味着empty()基本上是!isset($ var)||的简洁等价物$ var == false。