php中的isset函数通知

时间:2014-04-30 01:18:08

标签: php isset

以下代码会发出通知。

  

(!)注意:未定义的索引:第55行的C:\ xampp \ htdocs \ WilliesFishing \ admin \ product \ index.php中的product_id

我检查了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
    }

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分: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。在条件中使用请求参数