Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将项添加到数组PHP_Php_Session - Fatal编程技术网

将项添加到数组PHP

将项添加到数组PHP,php,session,Php,Session,我正在为学校作业做一辆购物车。除了将项目添加到cart变量之外,我几乎做到了这一点 我已使用以下命令设置购物车会话:$\u session['temp\u session']=array() 然后,当一个项目被添加到购物车时,执行此代码 if (isset($_POST['addtocart'])) { $item_name = $_POST['item_name']; $price = $_POST['price']; $

我正在为学校作业做一辆购物车。除了将项目添加到cart变量之外,我几乎做到了这一点

我已使用以下命令设置购物车会话:
$\u session['temp\u session']=array()

然后,当一个项目被添加到购物车时,执行此代码

if (isset($_POST['addtocart'])) {
            $item_name = $_POST['item_name'];
            $price = $_POST['price'];
            $qty = $_POST['qty'];

            $newItem = $item_name.":".$price.":".$qty;
            //echo $newItem;

            if (isset($_SESSION['shop_session'])) {
                array_push($shop_session, $newItem);
                //header('Location: cart.php');
                print_r($shop_session);
            }
            else {
                array_push($temp_session, $newItem);
                //header('Location: login.php?notLoggedIn=true');
                print_r($temp_session);
            }
        }
这一切似乎都很正常(我可以打印出
$newItem
并包含元素),但当我尝试将
$newItem
添加到
$shop\u session
$temp\u session
中,然后打印出来时,数组是空的

这与我使用
array\u push()
的方式有关吗

谢谢你的电话接通了吗?如果没有,您必须使用

            if (isset($_SESSION['shop_session'])) {
                    array_push($_SESSION['shop_session'], $newItem);
                    //header('Location: cart.php');
                    print_r($_SESSION);
            }
            else {
                array_push($_SESSION['temp_session'], $newItem);
                    //header('Location: login.php?notLoggedIn=true');
                    print_r($_SESSION);
            }
你的电话接通了吗?如果没有,您必须使用

            if (isset($_SESSION['shop_session'])) {
                    array_push($_SESSION['shop_session'], $newItem);
                    //header('Location: cart.php');
                    print_r($_SESSION);
            }
            else {
                array_push($_SESSION['temp_session'], $newItem);
                    //header('Location: login.php?notLoggedIn=true');
                    print_r($_SESSION);
            }
你不能打字

$_SESSION['temp_session'] = array();
并希望有一个名为$temp_session的变量。您所拥有的只是一个数组($\u SESSION),其中包含一个元素(键名为
temp\u SESSION
),该元素反过来也是一个数组

为了获得所需的结果,您需要添加一行,例如:

$temp_session = $_SESSION['temp_session'];
当您更新时,请再次回到您的会话:

$_SESSION['temp_session'] = $temp_session;
你不能打字

$_SESSION['temp_session'] = array();
并希望有一个名为$temp_session的变量。您所拥有的只是一个数组($\u SESSION),其中包含一个元素(键名为
temp\u SESSION
),该元素反过来也是一个数组

为了获得所需的结果,您需要添加一行,例如:

$temp_session = $_SESSION['temp_session'];
当您更新时,请再次回到您的会话:

$_SESSION['temp_session'] = $temp_session;

@Anax如果你不知道这与
register\u globals
有什么关系,那么你就从来没有遇到过一个用它编码的脚本。啊,好的,谢谢大家。使用打印(美元会话);我得到了:数组([temp_session]=>Array([0]=>Apocalypso:10.00:2))。所以$\u SESSION是一个数组,其中有另一个名为temp\u SESSION的数组?如何将临时会话复制到商店会话?另外,我猜foreach($会话['shop\u会话']作为$item)也不会起作用?@e.c.ho我最初的印象是Alexey暗示,在register\u globals打开的情况下,每个会话变量也会自动作为独立变量提供,我相信这不是真的。@Anax如果你不知道这与
register\u globals
有什么关系,那么你就从来没有遇到过一个用它编码的脚本。啊,好的,谢谢大家。使用打印(美元会话);我得到了:数组([temp_session]=>Array([0]=>Apocalypso:10.00:2))。所以$\u SESSION是一个数组,其中有另一个名为temp\u SESSION的数组?如何将临时会话复制到商店会话?另外,我猜foreach($会话['shop\u会话']作为$item)也不会起作用?@e.c.ho我最初的印象是Alexey暗示,在register\u globals打开的情况下,每个会话变量也会自动作为独立变量提供,我认为这不是真的。