ошибка сессии php - PullRequest
       12

ошибка сессии php

1 голос
/ 12 декабря 2010

Я пытался сделать корзину для покупок и получил код из Интернета ..

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

но при добавлении первого товара в корзину происходит ошибка. Как я могу это исправить.

Ошибка:

Примечание: неопределенный индекс: корзина в C: \ wamp \ www \ website \ store_esp \ addtocart.php в строке 16

Примечание: неопределенный индекс: 2 в C: \ wamp \ www \ website \ store_esp \ addtocart.php в строке 16

Ответы [ 3 ]

2 голосов
/ 12 декабря 2010

Похоже, вы пытаетесь манипулировать переменными, которые еще не установлены. Убедитесь, что вы проверяете, существует ли $_SESSION['cart'][$product_id], прежде чем что-то делать с ним:

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

switch($action) {
...
1 голос
/ 12 декабря 2010

Не зная ошибки, невозможно сказать наверняка. Но используя мои дедуктивные способности, я думаю, что проблема здесь:

$_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']; 
1 голос
/ 12 декабря 2010

Попробуйте изменить это:

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

на это:

if (isset($_SESSION['cart'][$product_id])) {
    ++$_SESSION['cart'][$product_id];
} else {
    $_SESSION['cart'][$product_id] = 1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...