0

セッションに配列を格納するサイトがあります。項目が配列に追加され、配列がループされて項目が表示されます。

私のローカル XAMPP では正常に動作していますが、アップロードしたところ、奇妙な動作が見られます。

私の配列は次のようになります。

Array
(
    [bag] => Array
        (
            [0] => Array
                (
                    [item_id] => 4
                    [stock_id] => 7
                    [quant] => 1
                )
         )
)

そして、アイテムを追加した後はそうしますが、数回クリックすると次のようになります。

Array
(
    [bag] => 1
)

エラーで:

Warning: Invalid argument supplied for foreach() in /public_html/xxx.php on line xx

php .ini 構成または同様のものについて知っておくべきいくつかのセッション設定はありますか? (それが役立つ場合は、Hostgatorを使用しています)


配列にアイテムを追加する簡単な方法-

function AddBag()
{
//get info
    $item_id   = $_POST['item_id'];
    $quant      = $_POST['quant];
    $stock_id  = $_POST['stock_id];

    if (isset($_SESSION['bag'])) {$bag_array = $_SESSION['bag'];}
    else                         {$bag_array = array();}

//add item into array
    $new_item = array("item_id" => $item_id, "stock_id" => $stock_id, "quant" =>         $quant);
    array_push($bag_array, $new_item);

//update session with new array
    $_SESSION['bag'] = $bag_array;
}
4

1 に答える 1

0

私は自分で答えを見つけたと思います-

次のような foreach ループがあります。

foreach ($_SESSION['bag'] as $bag) {$bag_num = $bag_num + $bag['quant'];

これは、ローカルの XAMPP でのテストでは問題なく機能しましたが、私のホスティングではそれがありませんでした。次のように変更します。

foreach ($_SESSION['bag'] as $bagx) {$bag_num = $bag_num + $bagx['quant'];

でもうまくいくようです。

競合が発生する理由はわかりますが、一方または他方で機能する理由はわかりません。アイデアはありますか?

于 2012-04-27T22:36:58.567 に答える