【问题标题】:PHP: Array => Undefined IndexPHP:数组 => 未定义索引
【发布时间】:2011-08-15 18:26:32
【问题描述】:

我正在做一个关于购物车的大学练习,我将 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);

?>

【问题讨论】:

    标签: arrays session post shopping-cart


    【解决方案1】:

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

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

    print_r($_SESSION);
    

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

    【讨论】:

    • 你是对的,该项目不在阵列上,也不是我能说的数量。我不明白我做错了什么!
    【解决方案2】:

    你做错的是在调用session_start之前输出空白内容,看第一行包含&lt;?php,你会注意到标签前有几个空格。

        <?php
    ^^^^
    

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

    【讨论】:

      猜你喜欢
      • 2015-12-15
      • 2013-11-03
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 2012-06-01
      • 2013-10-18
      相关资源
      最近更新 更多