2013-08-06 50 views
0

我從$ _GET數組中檢索一些行,其中一些是複選框值。由於它們只會在$ _GET數組中顯示「開啓」狀態,因此我設計了以下解決方案,以向將要發送給客戶端的字符串添加「off」。這裏是什麼樣子:PHP通知抑制

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

相對簡單,這工作,推遲在$ oactive如果有什麼的[「主動」] [$行。然而,如果在$ _GET值[ '主動'] [$行]是不確定的,PHP呼應的通知:

注意:未定義抵消:6 ... \在線page.php文件 X

我可以用error_reporting()來抑制它,但我想找到更好的方法。有任何想法嗎?

+0

檢查是否試圖使用它之前的值'isset'。 – datasage

+4

一個更好的問題標題將是,如何防止通知,不壓制消息。 –

+0

在使用之前請先進行輸入驗證。 –

回答

0

檢查它試圖使用它之前設置,與isset

if(isset($_GET['active'][$row]) && $_GET['active'][$row]==false){ 
0

你應該使用isset

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

的另一種選擇是包括inputhidden類型和默認值(在我的猜測中是「關閉」),在每個複選框之前(並且名稱相同),通過這種方式,如果在提交表單時選中複選框的值,則複選框的值將保留,否則默認v來自隱藏輸入的提示將被提交。

例子:

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