2013-07-20 191 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>'; 
    } 
} 
} 
?> 

可能這有助於你...