PHP: Array => неопределенный индекс - PullRequest
0 голосов
/ 30 апреля 2011

Я работаю над упражнением для колледжа о корзине покупок, я преобразовал значения 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 голосов
/ 01 июня 2011

То, что вы делаете неправильно, выводит пустой контент перед вызовом session_start, смотрите первую строку, содержащую <?php. Вы заметите, что перед тегом есть несколько пробелов.

    <?php
^^^^

вам нужно удалить их, чтобы сессия начиналась правильно!

0 голосов
/ 30 апреля 2011

Это означает, что массив $ _SESSION ["lista"] не имеет элемента для "item" или "amount".

Для просмотра всего содержимого $ _SESSION вы можете использовать print_r ():

print_r($_SESSION);

Обратите внимание, что в HTML это выглядит не очень хорошо, вам нужно использовать "Просмотр исходного кода" в браузере, чтобы увидеть его в хорошем виде.

...