Цикл foreach ошибка

Статус
В этой теме нельзя размещать новые ответы.

DarkMirror

Новичок
Цикл foreach ошибка

Здравствуйте!
У меня выдается ошибка
Warning: Invalid argument supplied for foreach().

Вот цикл в котором якобы ошибка
foreach ($cart as $id => $qty)
{
$good = get_good_details($id);

echo '<tr>';
if($images == true)
{
echo '<td align="left">';
if (file_exists("images/$id.jpg"))
{
$size = GetImageSize('images/'.$id.'.jpg');
if($size[0]>0 && $size[1]>0)
{
echo '<img src="images/'.$id.'.jpg" border=0 ';
echo 'width = '. $size[0]/3 .' heigh = '. $size[1]/3 . '>';
}
}
else
echo '&nbsp;';
echo '</td>';
}
Скажите, из-за чего вообще может возникать эта ошибка?
Заранее спасибо!
 

chisto_tolyan

Враг народа
потому что передаешь в foreach не массив. ты уверен что $cart эо массив?
 

whirlwind

TDD infected, paranoid
$cart не является массивом. Смотри в каких случаях так получается.
 

DarkMirror

Новичок
А как точно проверить массив ил передается или нет?
Вообще, должен передаваться массив
$HTTP_SEESION_VARS['cart']
 

hermit_refined

Отшельник
DarkMirror
во-первых, $_SESSION.
во-вторых, [m]var_dump[/m].
в-третьих, делайте проверку isset() или empty() перед циклом.
 

que_bunt

Новичок
DarkMirror
$HTTP_SESSION_VARS - массив, а cart - член массива, который может и не быть массивом!
и вообще пиши не $HTTP_SESSION_VARS а $_SESSION.
 

DarkMirror

Новичок
Приведу всю функцию:

function display_cart($cart, $change = true, $images = 1)
{
global $HTTP_SESSION_VARS;
foreach ($cart as $id => $qty)
{
$good = get_good_details($id);

echo '<tr>';
if($images == true)
{
echo '<td align="left">';
if (file_exists("images/$id.jpg"))
{
$size = GetImageSize('images/'.$id.'.jpg');
if($size[0]>0 && $size[1]>0)
{
echo '<img src="images/'.$id.'.jpg" border=0 ';
echo 'width = '. $size[0]/3 .' heigh = '. $size[1]/3 . '>';
}
}
else
echo '&nbsp;';
echo '</td>';
}
...
В скрипте я обращаюсь
display_cart($HTTP_SEESION_VARS['cart']);

Если я ставлю команду echo $HTTP_SESSION_VARS['cart']; прямо перед display_cart($HTTP_SEESION_VARS['cart']);
то на экран выводится Array
 

whirlwind

TDD infected, paranoid
ну вот при первом заходе у тебя $HTTP_SEESION_VARS['cart'] не существует -> он не массив
 

hermit_refined

Отшельник
DarkMirror
понятно. ищите свою опечатку.
(и читайте что вам пишут.)

P.S. в следующий раз - без error_reporting(E_ALL); лучше не приходите.
 

DarkMirror

Новичок
"ну вот при первом заходе у тебя $HTTP_SEESION_VARS['cart'] не существует -> он не массив"

т.е.?
Как это не существует?

"понятно. ищите свою опечатку."
проверил - опечаток нет...
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху