PHP:Array =>未定义的索引

时间:2011-04-29 20:14:38

标签: arrays session post shopping-cart

我正在进行关于购物车的大学练习,我将POST值转换为数组,但是当我回显这些数组值时,我得到以下消息:

Notice: Undefined index: item in line 40
Notice: Undefined index: quantity in line 40

这是第40行:

echo "1. ".$_SESSION['lista']['item']." ".$_SESSION['lista']['quantity']." unidades".", ".$_SESSION['lista']['price']." CRC.";

这是完整的脚本:

    <?php

session_start();

//Obtengo la lista
$lista[]= $_SESSION['lista'];

//Guardo un valor en la lista
/*
$articulo= $_POST['articulo'];
$cantidad= $_POST['cantidad'];
$codigo= $_POST['codigo'];
*/

//Listado
$articulos = array(

  'Papaya' => 500, 'Banano' => 50, 'Mango' => 150, 
  'Leche' => 500, 'Cafe' => 1200, 'Mantequilla' => 300,
  'Pan' => 450, 'Jugo' => 780, 'Mani' => 800,
  'Yogurt' => 450, 'Cerveza' => 550, 'Vino' => 2500,
  );

$_SESSION['lista'] = array(
'item' => ($_POST['articulo']), 
'quantity' => ($_POST['cantidad']),
'code' => ($_POST['codigo']),
);

//precio
$precio = $articulos[($_SESSION['lista']['item'])] * $_SESSION['lista']['quantity'];

$_SESSION['lista'] = array('price' => $precio,);


//listado
echo  "<b>LISTADO DE COMPRA</b></br>";


echo "1. ".$_SESSION['lista']['item']." ".$_SESSION['lista']['quantity']." unidades".", ".$_SESSION['lista']['price']." CRC.";

/*foreach($_SESSION['lista'] as $key => $item) {
  echo $key, '. ', $item['item'], ' ', $item['quantity'], ' units';
}
*/

//Regreso a la lista
$_SESSION['lista'] = $lista;



var_dump($_SESSION); $lista;

echo "</br> <a href='index.html'>Volver al indice</a>";

//SESSION_DESTROY = Elimina todo

//Imprimo lo que hay en session
var_dump($_SESSION);

?>

2 个答案:

答案 0 :(得分:0)

这意味着$ _SESSION [“lista”]数组没有“item”或“quantity”的元素。

要查看$ _SESSION的完整内容,您可以使用print_r():

print_r($_SESSION);

请注意,在HTML中这看起来不太好,您需要在浏览器上使用“查看源代码”才能以良好的形式查看它。

答案 1 :(得分:0)

在调用session_start之前输出空白内容的错误是什么,请参阅包含<?php的第一行。您会注意到标记前面有几个空格。

    <?php
^^^^

您需要删除它们才能使会话正确启动!