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 回答