购物车不响应空PHP

购物车不响应空PHP,php,Php,我的购物车从不回显为空,即使值为0。 我错过了什么?请给我指一下正确的方向。 我试图移动else语句,但这只会导致页面错误 <?php session_start(); include "cart.php"; include "style.php"; if (isset($_GET['add'])) { $_SESSION['id'.$_GET['add']]++; } if (isset($_GET['empty'])) { $_SESSION['id_'.$_G

我的购物车从不回显为空,即使值为0。 我错过了什么?请给我指一下正确的方向。 我试图移动else语句,但这只会导致页面错误

<?php
session_start();

include "cart.php";
include "style.php";


if (isset($_GET['add'])) {
    $_SESSION['id'.$_GET['add']]++;
}

if (isset($_GET['empty'])) {
    $_SESSION['id_'.$_GET['empty']]--;
    session_unset();
}

function cart() {
    echo "<h3>Shopping cart!</h3>";
    echo "<table>
    <tr>
    <td>Product</td>
    <td>Quantity</td>
    <td>Price</td>
    <td><a href='shoppingcart.php?empty=$name'>[Empty]</a></td>
    </tr>"; 
    foreach($_SESSION as $name => $value) {
    if ($value > 0) {
    echo "<table><tr><td>$name</td><td>$value</td></tr></table>";

}
    else {
    echo "Cart is empty";
}
}       
} 

?>

会话不是购物车,购物车也不是会话。购物车本质上应该是一个包含数组的会话属性

以下是基本思想(从代码开始):


购物车!
产品
量
价格

要清除所有会话变量还是销毁会话?两者之间有区别。这是一个可怕的推车设计。会话['cart']=array()如何然后构建一个数组并将其放入其中。并在检索购物车时检索数组。您不希望用户确定会话变量的名称(即,
$\u session['id.$\u GET['add']]
)……这可能是一个安全漏洞。可怕的代码设计:/感谢您的输入,我对这一点非常陌生,非常感谢您的输入。我很想知道为什么我的“else”语句不起作用,因为这是我的主要问题@developerjkno,您的主要问题是这是完全错误的。会话不是购物车,购物车也不是会话。您不会将购物车的不同项目放在不同的会话属性中。而且,您也不会为了清理购物车而取消整个会话。你需要从头开始做正确的事情。
<?php
session_start();

//create default empty cart
$cart = array();

if(isset($_SESSION['cart']))
{
   //get the cart from the session
   $cart = $_SESSION['cart'];
}

if (isset($_GET['add'])) 
{
   $cart[] = $_GET['add']; //add to cart array
}

if (isset($_GET['empty'])) 
{
    $cart = array(); //set cart array to empty array
}

//put the cart in the session
$_SESSION['cart'] = $cart;

function cart() 
{
?>
    <h3>Shopping cart!</h3>
    <table>
    <tr>
    <td>Product</td>
    <td>Quantity</td>
    <td>Price</td>
    <td><a href='shoppingcart.php?empty=true'>[Empty]</a></td>
    </tr>
<?php
    if(empty($cart))
    {
       echo "Cart is empty";
    }
    else
    {
       echo "<table>";
       foreach($cart as $name => $value) 
       {
            echo "<tr><td>$name</td><td>$value</td></tr>";
       }
       echo "</table>";
    }       
}