Foros del Web » Programando para Internet » PHP »

carrito de pedidos con un solo problema

Estas en el tema de carrito de pedidos con un solo problema en el foro de PHP en Foros del Web. Hola... bueno tengo un carro de compras terminado pero con problemas que creo que son por la variables de sesion. Dicho problema ocurre cuando hago ...
  #1 (permalink)  
Antiguo 15/04/2004, 14:24
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
carrito de pedidos con un solo problema

Hola...
bueno tengo un carro de compras terminado pero con problemas
que creo que son por la variables de sesion. Dicho problema ocurre cuando hago el borrado de un articulo y el carro queda vacio, pues la comprovacion que hace se para como si tuviese contenido todovia aqui pongo el codigo:

son tres paginas:
la primera en la cual se muestran los productos y con un boton pedir el cual envia las variables que necesito a la pagina del carrito de compras que es así :

<?php
session_start();
session_register('itemsEnCesta');
$_POST['cantidad'];
$_POST['pvp'];
$_POST['code'];
$_POST['subfamilia'];
$itemsEnCesta=$_SESSION['itemsEnCesta'];
if ($item){
if (!isset($itemsEnCesta)){
$itemsEnCesta[$item]=$cantidad;
}else{
foreach($itemsEnCesta as $k => $v){
if ($item==$k){
$itemsEnCesta[$k]+=$cantidad;
$encontrado=1;
}
}
if (!$encontrado) $itemsEnCesta[$item]=$cantidad;
}
}
$_SESSION['itemsEnCesta']=$itemsEnCesta;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Pedido de Articulos...</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<tt>
<?
if (isset($itemsEnCesta)){
echo'El contenido de este pedido es:<br>';
foreach($itemsEnCesta as $k => $v){
echo 'Artículo: '.$k.' ud: '.$v.' Tipo: '.$subfamilia.' PVP x Unidad: '.$pvp.' <a href="borrar_podu.php?id='.$k.'&PHPSESSID='.$SID.' ">Borrar</a><BR>';
}
}
else{
echo "no tiene articulos seleccionados";
}
?>
</tt>
</body>
</html>
................................

a continuacion cada uno de los articulos que pinta esta pagina se pueden borrar mediante un link borrar que nos lleva a la siguiente pagina:

<?
session_register('itemsEnCesta');
unset ($HTTP_SESSION_VARS['itemsEnCesta'][$id]);
echo ("el producto $id ha sido eliminado de la cesta<BR>");
echo '<a href="agregar_prod.php?itemsEnCesta='.$itemsEnCest a.'">ver carrito</a>';
?>

.................................
espero aver explicado bien... el problema esta cuando vuelvo del borrado del articulo el escrip comprueva si existen articulos y si no hay en ves de irse al ultimo }else{ se detiene...

espero que me puedan ayudar , desde ya muchas gracias.
  #2 (permalink)  
Antiguo 15/04/2004, 14:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Hacer una encuesta para destacar un mensaje no me parece buena práctica .. y más como lo has hecho .. EVITA esas actitudes en el futuro por favor.

El código PHP se vé mejor si usas el botón "PHP" no coloreado en un color uniforme (es solo un consejo).

-------

Sobre tu problema ..

Si usas para registrar tus variables de sesión: session_register() deberías borrarlas con session_unregister() no con unset() ..

Y a todo esto si usas PHP 4.1.0 sería altamente recomendable que usases los arrays superglobales para trabajar con sesiones: $_SESSION (www.php.net/session )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 16/04/2004, 07:36
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
Desacuerdo puedo equivocarme???

Antetodo gracias por tu respuesta,.... ahora yo digo o pregunto:

¿uno, se puede equivocar? , esto lo digo por lo que tu me dices sobre :

"Hacer una encuesta para destacar un mensaje"...

Primero: esto de ninguna manera lo hice por la razon que tu imaginas, solamente fue un (ERROR).

Y segundo : si dejo mensajes en este foro es por que me interesa aprender, y no destacar mensajes...

  #4 (permalink)  
Antiguo 16/04/2004, 07:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Antetodo Disculpa ... si fué un error.

Pero esa es la impresión que dió este mensaje, tienes sobre 21 mensajes por eso me "estrañó" ver esa "encuesta" cuando ya has usado el foro. Lamentablemente se han visto usuarios que hacen eso para destacar sus mensajes y que sean antendidas más rápido sus preguntas.

Un saludo,

PD: Cualquier duda o aclaración usemos el sistema de MP (mensajes privados) para continuar este tema concreto.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:20.