无法修改标头信息和无效参数。但争论似乎没问题

时间:2013-10-11 18:47:57

标签: php mysql

我收到以下错误:

  

警告:为foreach()提供的参数无效   第324行/home/site/www.mysite.com/admin/categories.php

     

警告:无法修改标头信息 - 已发送的标头   (输出从/home/site/www.mysite.com/admin/categories.php:324开始)   在/home/site/www.mysite.com/admin/includes/functions/general.php上   第35行

而且我不确定该找到什么。

第324行看起来像这样:

    foreach ($icons_id as $iconid) {
                     tep_db_query("insert into " . TABLE_PRODUCTS_TO_ICONS . " (products_id, icons_id) values ('" . (int)$products_id . "', '" . (int)$iconid . "')");

    }

和第35行看起来像这样:

 header('Location: ' . $url);

我认为这与无效的论点有关,但我不确定为什么它无效?

1 个答案:

答案 0 :(得分:0)

正如我的评论中所述,由于之前的警告,标题调用失败,因此您需要首先解决此问题。警告表明$icons_id不是数组。您可以添加如下保护措施:

 if (is_array($icons_id)){
     foreach ($icons_id as $iconid) {
         tep_db_query("insert into " . TABLE_PRODUCTS_TO_ICONS . " (products_id, icons_id) values ('" . (int)$products_id . "', '" . (int)$iconid . "')");
    }
}

这样可以防止出现这种警告,但您仍然需要弄清楚$icons_id发生了什么,以及为什么它不是数组(如果您预期的话)。