首页 > 解决方案 > 在 php 中使用会话(本地存储)的购物车

问题描述

我正在尝试创建一个简单的购物车。

主要问题
该页面insertCart.php总是在查看购物车上添加一个产品,而不添加另一个。

次要问题:

使用会话我尝试从产品详细信息页面获取数据,当用户单击按钮添加到购物车时,将添加产品项目。

这是我到目前为止使用的代码

insertCart.php
<?php
    //start session
    session_start();
    include('connection/db.php');
    //get the values
    $name     = $_POST['name'];
    $price    = $_POST['price'];
    $quantity = $_POST['qty'];
    $image    = $_POST['image'];
    //storing values in an array and assign it to a variable
    $product  = array($name, $price, $quantity,$image);
    //store arrays values in session varialbe '$name'
    $_SESSION['$name'] = $product;
    header('location: view_cart.php');
?>

标签: phparrayssessionhtml-tableshopping-cart

解决方案


你用'$name'单引号写了,这意味着“不要解释这个字符串中的特殊字符,尤其是不要插入任何变量,即使我使用了这个$符号”。所以每次运行的结果都是一样的。

要将变量扩展为字符串,您需要双引号:

$_SESSION["$name"] = $product;

但由于您只是单独使用名称,在这种情况下您根本不需要引号:

$_SESSION[$name] = $product;

推荐阅读