2013-07-20 49 views
0

我的网站是Career Tracker 我想在我的本地机器的网站中添加购物车我每次都有错误,所以我累了。未定义的变量索引错误

我使用的XAMPP 1.8.1 [PHP:5.4.7]我得到一个错误每次 注意:未定义指数:车在functions.inc.php第4行

我累了,为什么我的PHP veriable是未定义?? $ cart

这是我的代码,我得到了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>'; 
    } 
} 
?> 
+0

尝试@ $ _ SESSION ['cart']而不是$ _SESSION ['cart'];在线号码3 –

+5

@ user1640432千万不要使用@来压制错误 – tlenss

+1

'session_start();' – verbumSapienti

回答

3

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

$cart = isset($_SESSION['cart']) ? $_SESSION['cart'] : array(); 
+0

改变了这一行错误是清楚的,但输出是改变和 – Savan

+0

什么样的变化? –

+0

我得到了所有的PHP代码在我的HTML页面,如 'code' function showCart(){global $ db; $ cart = $ _SESSION ['cart'];如果($ cart){$ items = explode(',',$ cart); $ contents = array(); foreach($ items作为$ item){$ contents [$ item] =(isset($ contents [$ item]))? $ contents [$ item] + 1:1; } $ output [] =''; $ output [] =''; foreach($ contents as $ id => $ qty){$ sql ='SELECT * FROM products WHERE id ='。$ id; $ result = $ db-> query($ sql); $ row = $ result-> fetch();提取物($行); $ output [] =''; $ total + = $ prince * $ qty; $ output [] =''; } $ output [] =''code' 我在我的html页面中得到了这个查询 – Savan

0

您的会话不被命名为“车”包含任何指数

为了可以在你需要使用任何输出前激活会话多页会议session_start功能。

+0

开始会话功能已经在我的header.php中运行 – Savan

0

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

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

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

+0

thanx @wren我的错误很明显,但我得到另一个问题,PHP打印所有在html文件中的代码。 – Savan

+0

@Savan你使用了正确的扩展名吗? – Daniel

+0

我使用了 $ cart = isset($ _ SESSION ['cart'])? $ _SESSION ['cart']:array(); – Savan

0

只是改变你的代码如下:(一normaly使用的这种情况下)

<?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>'; 
    } 
} 
} 
?> 

可能这有助于你...