2014-04-30 35 views
-4

下面的代碼會引發通知。php中的Isset函數通知

通知(!):未定義指數:PRODUCT_ID在C:\ XAMPP \ htdocs中\ WilliesFishing \在線管理\產品\的index.php 55

我檢查,我在line 55但它不喜歡isset()

我也試過if(isset($_GET['product_id'];它會引發同樣的錯誤。不應該這樣工作嗎?

case 'show_add_edit_form': 
    if (isset($product_id)) { 
     $product_id = $_GET['product_id']; 
    } else { 
     $product_id = $_POST['product_id']; // --> Line #55 
    } 
+0

哪一行是55行? – esqew

+0

請提供投放通知的確切路線。 – lagbox

+0

我使用導致它的行更正了上面的代碼 – user3562189

回答

1

無論$_GET$_POST沒有名爲product_id的索引。您的isset行僅檢查是否設置了全局變量$product_id,這可能不意味着$_GET和/或$_POST的狀態。你可能想這樣做,而不是:

if (isset($_GET['product_id')) { 
    $product_id = $_GET['product_id']; 
} else if (isset($_POST['product_id')) { 
    $product_id = $_POST['product_id']; 
} else { 
    // provide a reasonable default, or otherwise handle the edge-case, in here 
} 
+0

它仍然拋出相同的通知由於某種原因 – user3562189

+0

再試一次 - 有一個失蹤_在我的第二個'$ _POST'中,我不小心鍵入了'$ POST'(所以你在'else if'中檢查的東西與你讀的不一樣)。 – TML

+0

真棒,我應該抓住那個。我想我只是不明白爲什麼isset在這種情況下不起作用 – user3562189

0

你應該在你的get參數上使用isset。類似這樣的:

if (isset($_GET['product_id'])) { 
    $product_id = $_GET['product_id']; 
} 
else if (isset($_POST['product_id'])) { 
    $product_id = $_POST['product_id']; 
} 

錯誤告訴你這個,因爲$ _GET ['product_id']沒有值。所以不要使用$ product_id。在條件下使用請求參數