Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/05/2003, 00:33
Avatar de pabloman
pabloman
 
Fecha de Ingreso: enero-2003
Ubicación: Temuko
Mensajes: 54
Antigüedad: 21 años, 3 meses
Puntos: 0
Información Ayuda con carrito

Hola a todos, me pueden ayudar con mi problema porfavor, tengo el carrito de webestilo (un poco modificado) y me funciona bien, sin ningun tipo de errores:
carrito webestilo:
Código PHP:
<?
session_start
();
session_register('itemsEnCesta');
if (
$_POST["producto"])
//comprobamos si existe algún producto 
if (!isset($itemsEnCesta))  {
  
$items["producto"]=$_POST["producto"];
  
$items["cantidad"]=$_POST["cantidad"];
  
$items["cuotas"]=$_POST["cuota"];
  
$items["comentario"]=$_POST["coment"];
  
$itemsEnCesta= array($items);  }
  else { 
//recorremos su contenido, con el foreach, y si encontramos un artículo igual, añadimos la cantidad...
  
foreach($itemsEnCesta as $ind => $item_v)  {
      if (
$item_v["producto"]==$_POST["producto"])  {
      
$itemsEnCesta[$ind]["cantidad"]+=$_POST["cantidad"];
      
$encontrado=1;  }
// Si no lo encontramos, es un nuevo artículo, por lo tanto, añadimos el nuevo producto con la correspondiente cantidad a compra
  
if (!$encontrado)  {
     
$items["producto"]=$_POST["producto"];
     
$items["cantidad"]=$_POST["cantidad"];
     
$items["cuotas"]=$_POST["cuota"];
     
$items["comentario"]=$_POST["coment"];
     
$itemsEnCesta[]=$items;  }
  } 
// cierra el else
}
?>
<html><body>
<form action="<?=$PHP_SELF."?".$SID?>" method="post">
  Ingresa el producto <input type="text" name="producto" size="20"><br>
  Ingresa la cantidad <input type="text" name="cantidad" size="5"><br>
  Ingresa el Nº de cuotas <input type="text" name="cuota" size="5"><br>
  Ingresa comentario <input type="text" name="coment" size="25"><br>
  <input type="submit" value="Añadir a la cesta"><br>
</form>
<?
if (isset($itemsEnCesta))  {
 echo
'El contenido de la cesta de la compra es:<br>';
 foreach(
$itemsEnCesta as $k => $items)  {
    foreach(
$items as $tipo => $value) {
      echo 
$tipo.': '.$value.' ';  }
      echo 
"<br>";
    }
}
?>
</body></html>
hasta aki todo bien, en mis aplicaciones abro una sesion de la siguiente forma:

sesion.php
Código PHP:
<?
include ("conexx.php"); // se conecta a la BD, $var_usu y $var_con los traigo de otro form
$ssql "SELECT * FROM usuarios WHERE login='$var_usu' and password='$var_con'";
$rs mysql_query($ssql,$conex);
if (
mysql_num_rows($rs)!=0)  { //si la ejecución del SQL es != 0, existe el user y pass
  
session_start(); //defino una sesion y guardo datos
  
$_SESSION['compra']="si";
  
header ("Location: carrito.php? cod=$cod&calculo=$calculo&resultado=$resultado"); //envia 3 variables a carrito.php
}
else {
 
header("Location: registrarse.php?errorusuario=si"); //si no existe... 
}
?>
de sesion.php traigo las 3 variables deberia añadir a mi carrito, este es el codigo:

carrito.php
Código PHP:
<?
   
include ("conexx.php"); // se conecta a la BD
   
session_start(); 
   
$compra=$_SESSION['compra']; // asignamos a $variable la variable de la session áctiva.
?>

html>
<head>
  <title></title>
</head>
<body>
<?php
// la sesion ya esta abierta y compra="si"
if (($compra)=="si"){

//****** de aki para abajo aplico carrito webestilo(o al menos lo intento) *******

if ($_POST["$cod"])
//comprobamos si existe algún articulo 
    
if (!isset($compra))    {
        
$items["producto"]=$_POST["$cod"];
    
$items["cuotas"]=$_POST["$calculo"];
    
$items["resultado"]=$_POST["$resultado"];
    
$compra= array($items);  }
    else  { 
//recorremos su contenido, con el foreach, y si encontramos un artículo igual, añadimos las cuotas...
     
foreach($compra as $ind => $item_v)  {
    if (
$item_v["producto"]==$_POST["$cod"])  {
             
$compra[$ind]["cuotas"]+=$_POST["$calculo"];
        
$encontrado=1;  }
    } 
// Si no lo encontramos, es un nuevo artículo, por lo tanto, añadimos el nuevo producto con la correspondiente cuota a compra
    
if (!$encontrado)  {
                   
$items["producto"]=$_POST["$cod"];
          
$items["cuotas"]=$_POST["$calculo"];
       
$items["resultado"]=$_POST["$resultado"];
       
$compra= array($items);  }
    } 
// cierra el else
}
 
// ***** aki deberia mostrar la compra*********
if (isset($compra))  {
   echo
'El contenido de la cesta de la compra es:<br>';
   foreach(
$compra as $k => $items)    {
       foreach(
$items as $tipo => $value)    {
             echo 
$tipo.': '.$value.' ';  }
             echo 
"<br>";
    }
}
?>
</body>
</html>
pero me da el siguiente mensaje:
Warning: Invalid argument supplied for foreach() in c:\apache\htdocs\pruebas_php\open_sess.php on line xx

en donde la linea xx es: foreach($compra as $k => $items) {
Pueden ayudarme porfavor, gracias (al menos por leerme)

Bye bye.-
__________________
Cuando creo aprender algo, mas me doy cuenta que nada se...

Última edición por pabloman; 17/05/2003 a las 02:28