PHP通知抑制

时间:2013-08-06 14:24:33

标签: php checkbox error-handling get undefined

我正从$ _GET数组中检索一些行,其中一些是复选框值。由于它们只会在$ _GET数组中显示“on”状态,因此我设计了以下解决方案,为我将发送给客户端的字符串添加“off”。这是它的样子:

if(!($_GET['active'][$row])){  //row is incremented in a loop
    $oactive = "off";
}else{
    $oactive = "FBINSERTa".":". "\"" . $_GET['active'][$row] ."\"";
}

相对简单,如果['active'] [$ row]没有任何内容,推迟$ oactive。但是,如果$ _GET ['active'] [$ row]的值未定义,则PHP回应通知:

  

注意:未定义的偏移量:在... \ page.php中为6   在第x行

我可以用error_reporting()来抑制它,但我想找到一个更好的方法。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在尝试使用isset

之前检查它是否已设置
if(isset($_GET['active'][$row]) && $_GET['active'][$row]==false){

答案 1 :(得分:0)

您应该使用isset

if(isset($_GET['active'][$row])){  //row is incremented in a loop
    $oactive = "off";
}else{
    $oactive = "FBINSERTa".":". "\"" . $_GET['active'][$row] ."\"";
}

另一个选项是在每个复选框(并且名称相同)之前的标记中包含input类型hidden和默认值(“我想猜”),这个如果在提交表单时检查复选框的值将采取预防措施,否则隐藏输入的默认值将被提交。

示例:

<input type="hidden" name="myCheckbox" value="off" />
<label>
  <input type="checkbox" name="myCheckbox" value="on" />
  Check me!
</label>