0

セッションに小さな問題があります。私はサイト上に小さなショッピング カート風のセクションを構築しました。1 つの問題は、バスケットにアクセスしてアイテムが入っていないと、エラーが発生することです。

Warning: Invalid argument supplied for foreach() in /home/andydownham/site.com/wp-content/themes/theme/basket.php on line 28

'if items are in cart' > use normal code > else display 'sorry there are no items in your cart'これを実装する方法が正確にわからないだけのようなものが必要だと思います。

セッションに物を保存するために使用しているコードは次のとおりです

<?php
session_start();
//var_dump($_POST);
//print_r($_SESSION);
$_SESSION['event_orders'][] = $_POST['event_id'];
?>

そして、これは私がバスケットページで使用しているコードです:

<?php
session_start();

foreach($_SESSION['event_orders'] AS $event_id){
    echo '<div class="grad basket">';

    echo '<div class="thumb">';
    $EM_Event = em_get_event($event_id);
    echo $EM_Event->output('#_EVENTIMAGE{72,72}');
    echo '</div>';
    echo '<div class="basket-title"><h2>';
    echo '<a href="';
    $EM_Event = em_get_event($event_id);
    echo $EM_Event->output('#_EVENTURL');
    echo '">';
    $EM_Event = em_get_event($event_id);
    echo $EM_Event->output('#_EVENTNAME');
    echo '</a>';
    echo '</h2>';
    echo '<div class="basket-dates"> Dates:';
    $EM_Event = em_get_event($event_id);
    echo $EM_Event->output('#_EVENTDATES');
    echo '</div></div>';
    echo '<div class="klear"></div>';
    echo '<input type="submit" class="remove" value="remove" />';
    echo '</div>';
    echo '<br/>';
}
?>
4

3 に答える 3

0

空のセッションを foreach ループに渡しているため、配列が必要なため、エラーがスローされます。したがって、セッションが配列かどうか (php 関数: is_array($array))、配列が空かどうか (php 関数: empty($array)) を確認できます。他のバリアントは良くありませんが、実行できます。

于 2012-06-28T12:52:33.217 に答える