2010-12-11 2 views
1

PHP 세션 오류 ..나는 쇼핑 카트를 만들려고 노력하고 웹에서 코드를했습니다

<?php 
session_start(); 
require_once 'class/Item.php'; 
$product_id = $_REQUEST['i_id']; 
$action = $_REQUEST['action']; 

$item= new Item(); 

if($product_id && !$item->productExists($product_id)) { 
    die("Error. Product Doesn't Exist"); 
} 

switch($action) { 
    case "add": 
     $_SESSION['cart'][$product_id]++; 
    break; 

    case "remove": 
     $_SESSION['cart'][$product_id]--; 
     if($_SESSION['cart'][$product_id] == 0) unset($_SESSION['cart'][$product_id]); 
    break; 

    case "empty": 
     unset($_SESSION['cart']); 
    break; 
} 
?> 

하지만 durring. 어떻게 해결할 수 있습니까?

오류 :

Notice: Undefined index: cart in C:\wamp\www\website\store_esp\addtocart.php on line 16

Notice: Undefined index: 2 in C:\wamp\www\website\store_esp\addtocart.php on line 16

+3

어떤 오류는 어떻게해야합니까를 ? – thejh

+0

존재하지 않는 연관 배열 구성원을 참조하는 것이 실수일까요? – thejh

+0

아마도 '정의되지 않은 색인'경고입니다. '$ _SESSION [ 'cart'] [$ product_id] ++;가 문제 일 가능성이 높습니다. – Jonah

답변

2

보인다. 당신이 그것에 무언가를하기 전에 $_SESSION['cart'][$product_id]가 있는지 확인하고 확인 :

if(!isset($_SESSION['cart'][$product_id])) 
    $_SESSION['cart'][$product_id] = 0; 

switch($action) { 
... 
+2

if ($ _ SESSION [ 'cart'] [$ product_id] <= 0) 설정을 해제하려면 if ($ _ SESSION [ 'cart'] [$ product_id] == 0) unset ... ' ... '. – Jonah

1

이 변경 시도 : 이것에

$_SESSION['cart'][$product_id]++; 

: 아직 설치하지 않은 변수를 조작하려고 할 수있다처럼

if (isset($_SESSION['cart'][$product_id])) { 
    ++$_SESSION['cart'][$product_id]; 
} else { 
    $_SESSION['cart'][$product_id] = 1; 
} 
1

오류를 모른 채, 그것을 확실히 얘기하는 것은 불가능하다.

$_SESSION['cart'][$product_id]++; 

그것은이 있어야합니다 : 내 연역적 힘을 사용하여, 나는이 문제에 대해 생각

if (isset($_SESSION['cart'][$product_id])) { 
    $_SESSION['cart'][$product_id]++; 
} else { 
    $_SESSION['cart'][$product_id] = 1; 
} 

을 그리고 당신이 변경해야

session_start(); 
// add this part 
if (!isset($_SESSION['cart'])) { 
    $_SESSION['cart'] = array(); 
} 
require_once 'class/Item.php'; 
$product_id = $_REQUEST['i_id']; 
$action = $_REQUEST['action']; 
관련 문제