0

我的网站是Career Tracker ,我想在本地机器上的网站中添加购物车,每次都会出错,所以我很累。

我使用 XAMPP 1.8.1 [PHP: 5.4.7] 我每次都收到错误通知:未定义的索引:第 4 行的 functions.inc.php 中的购物车

我厌倦了为什么我的 php veriable 未定义?$购物车

这是我的代码,我在第 4 行出现错误。

php未定义索引错误

    <?php
function writeShoppingCart() 
{   
    $cart = $_SESSION['cart'];
    if (!$cart) 
    {
        return 'My Cart (0) Items';
    } 
    else 
    {
        // Parse the cart session variable
        $items = explode(',',$cart);
        $s = (count($items) > 1) ? 's':'';
        return '<a href="cart.php">'.count($items).' item'.$s.' in your cart</a></p>';
    }
}
?>
4

4 回答 4

3

您应该检查购物车索引是否存在。

$cart = isset($_SESSION['cart']) ? $_SESSION['cart'] : array();
于 2013-07-20T10:41:39.193 回答
0

您的会话不包含任何名为“cart”的索引

要使会话在多个页面上可用,您需要使用该session_start功能在任何输出之前激活会话。

于 2013-07-20T10:41:36.633 回答
0

在设置变量之前访问它会抛出一个通知。

isset()尝试首先使用该函数检查它是否存在。
编辑指出您还没有开始您的会话:session_start()

http://php.net/manual/en/function.isset.php
http://php.net/manual/en/function.session-start.php

于 2013-07-20T10:42:48.047 回答
0

只需将您的代码更改为:(我通常用于这种情况)

<?php
function writeShoppingCart() 
{  
if(isset($_SESSION['cart']))
{ 
    $cart = $_SESSION['cart'];
    if (!$cart) 
    {
        return 'My Cart (0) Items';
    } 
    else 
    {
        // Parse the cart session variable
        $items = explode(',',$cart);
        $s = (count($items) > 1) ? 's':'';
        return '<a href="cart.php">'.count($items).' item'.$s.' in your cart</a></p>';
    }
}
}
?>

这可以帮助你...

于 2013-07-20T10:54:43.153 回答