我正在进行关于购物车的大学练习,我将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);
?>
答案 0 :(得分:0)
这意味着$ _SESSION [“lista”]数组没有“item”或“quantity”的元素。
要查看$ _SESSION的完整内容,您可以使用print_r():
print_r($_SESSION);
请注意,在HTML中这看起来不太好,您需要在浏览器上使用“查看源代码”才能以良好的形式查看它。
答案 1 :(得分:0)
在调用session_start之前输出空白内容的错误是什么,请参阅包含<?php
的第一行。您会注意到标记前面有几个空格。
<?php
^^^^
您需要删除它们才能使会话正确启动!