Foros del Web » Programando para Internet » PHP »

error en carrito

Estas en el tema de error en carrito en el foro de PHP en Foros del Web. Hola, tengo echo un carrito en php y me da error en la linea 64 :S que es donde termina </html> y tambien querria saber ...
  #1 (permalink)  
Antiguo 21/06/2009, 05:24
 
Fecha de Ingreso: junio-2009
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
error en carrito

Hola, tengo echo un carrito en php y me da error en la linea 64 :S que es donde termina </html> y tambien querria saber como puedo poner que el carrito sea privado, es decir, que solo lo puedan ver los usuarios registrados en mi pagina web. weno aqui os dejo el codigo gracias de antemano

<?php
session_start();
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];else $carro=false;
?>

<html>
<body>

<h1 align="center"> Tu Carrito </h1>

<?php
if($carro){
?>

<table width="100%" height="95%" align="center" border="1">

<tr align="center">
<td> Quitar
<td> Nombre
<td> Precio
<td> Cantidad
</tr>


<?php

$contador=0;
$suma=0;
foreach($carro as $a => $b){
$subtotal=$b['stock']*$b['precio'];
$suma=$suma+$subtotal;
$contador++;
?>

<form name="a <?php echo $b['identificador'] ?>" method="post" action="agregar.php?<?php echo SID ?>" id="a<?php echo $b['identificador'] ?>">
<tr>
<td> <a href="borrar.php?<?php echo SID ?>&id=<?php echo $v['id_producto'] ?>"><img src="borrar.gif"></a>
<td> <?php echo $b['nombre'] ?>
<td> <?php echo $b['precio'] ?>
<td align="center"> <?php echo $b['cantidad'] ?>
<td> <input name="cantidad" type="text" id="cantidad" value="<?php echo $b['stock'] ?>" size="8">
<input name="id" type="hidden" id="id" value="<?php echo $b['id_producto'] ?>">
</tr>
</form>

<tr>
<td>
<td>
<td> Subtotal:
<td> <?php echo number_format($suma,2); ?>
</tr>
</table>
<br> <br>
<table align="center">
<tr>
<td> <a href="fin.html" target="Principal"> <img src="compraya.gif"></a>
<td> <a href="productos.html" target="Principal"> <img src="continuar.gif"></a>
<td> <a href=" " target="Principal"> <img src="actualizar.jpg"></a>
</tr>
</table>

</body>
</html>
  #2 (permalink)  
Antiguo 21/06/2009, 07:07
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: error en carrito

tu codigo esta mal planteado deberias de ver el manual php .
manual

Última edición por easy; 21/06/2009 a las 07:25
  #3 (permalink)  
Antiguo 21/06/2009, 07:23
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años
Puntos: 6
tu también deberías de revisar el manual también un poco, o por lo menos los condicionales, pues la sintaxis es correcta:

if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
else
$carro="false";

solo que al leerlo no resulta muy cómodo, pues omite el newline "\n" para llamar al else.

tu problema es básicamente el siguiente:
No sabes programar, porque no tienes un buen orden en el código y además, porque haces cosas tan asquerosas, para mi punto de vista, como las de embeber el código PHP en HTML, lo cual dificulta la lectura y que te des cuenta por ejemplo de que el condicional if($carro){ nunca se cierra y allí no termina la cosa, el bucle foreach($carro as $a => $b){ tampoco se cierra. con lo cual, el interprete espera que cierres estas instrucciones de control y lanza el erro en la última fila del archivo, pues es como máximo el lugar donde se espera dicho cierre "}".
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter

Última edición por GatorV; 21/06/2009 a las 10:09
  #4 (permalink)  
Antiguo 21/06/2009, 09:00
 
Fecha de Ingreso: junio-2009
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: error en carrito

Cita:
Iniciado por jaao_death Ver Mensaje
tu problema es básicamente el siguiente:
No sabes programar, porque no tienes un buen orden en el código y además, porque haces cosas tan asquerosas, para mi punto de vista, como las de embeber el código PHP en HTML, lo cual dificulta la lectura y que te des cuenta por ejemplo de que el condicional if($carro){ nunca se cierra y allí no termina la cosa, el bucle foreach($carro as $a => $b){ tampoco se cierra. con lo cual, el interprete espera que cierres estas instrucciones de control y lanza el erro en la última fila del archivo, pues es como máximo el lugar donde se espera dicho cierre "}".
Si te digo la verdad, no se programar mucho xD, pero weno, e corregido lo que tu me as dicho y le e qitado los { y ya me salgo algo pero me ahora me da error en la linea 30 es decir, en la de: foreach($carro as $a => $b)

Otra pregunta, como puedo poner para que sea privado el carrito, que solo lo puedan ver los usuarios registrados en mi pagina web?
  #5 (permalink)  
Antiguo 21/06/2009, 09:11
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años
Puntos: 6
Respuesta: error en carrito

1º, la solución no es quitar la llave de apertura "{" pues si lo haces le quitas la lógica al programa, lo que tienes que hacer es cerrarla donde se debe cerrar. Y si me lo preguntas a mi, la respuesta es: no lo sé. Tu eres el que conoce la lógica de tu problema y cómo solucionarlo, es por esto que te lanza un error en la línea 30, pues el foreach es un bucle que necesita ser ejecutado para usar/procesar cada variable de un array.

2º para que "el carrito" sea privado tienes que crear un sistema de usuarios, luego validar que el usuario actual está registrado, y por último mandar "el carrito"...
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #6 (permalink)  
Antiguo 21/06/2009, 11:21
 
Fecha de Ingreso: junio-2009
Mensajes: 7
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: error en carrito

Hola, he cogido un carrito que he visto en una web pero cuando lo ejecuto, no me sale la tabla, aqui os dejo el codigo:

<?php
session_start();
error_reporting(E_ALL);
@ini_set('display_errors', '1');
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];else $carro=false;
?>
<html>
<head>
<title>PRODUCTOS AGREGADOS AL CARRITO</title>

</head>
<body>
<h1 align="center">Carrito</h1>
<?php
if($carro){

?>
<table width="720" border="0" cellspacing="0" cellpadding="0" align="center">
<tr bgcolor="#333333" class="tit">
<td width="105">Nombre</td>
<td width="207">Precio</td>
<td colspan="2" align="center">Stock</td>
<td width="100" align="center">Borrar</td>
<td width="159" align="center">Actualizar</td>
</tr>
<?php
$color=array("green","yellow");
$contador=0;
$suma=0;
foreach($carro as $k => $v){
$subtotal=$v['stock']*$v['precio'];
$suma=$suma+$subtotal;
$contador++;

?>
<form name="a<?php echo $v['identificador'] ?>" method="post" action="agregarcar.php?<?php echo SID ?>" id="a<?php echo $v['identificador'] ?>">
<tr bgcolor="<?php echo $color[$contador%2]; ?>">
<td><?php echo $v['nombre'] ?></td>
<td><?php echo $v['precio'] ?></td>
<td width="43" align="center"><?php echo $v['stock'] ?></td>
<td width="136" align="center">
<input name="stock" type="text" id="stock" value="<?php echo $v['stock'] ?>" size="8">
<input name="id" type="hidden" id="id" value="<?php echo $v['id'] ?>"> </td>
<td align="center"><a href="borracar.php?<?php echo SID ?>&id=<?php echo $v['id_producto'] ?>"><img src="Imagenes/Carrito/borrar.gif" width="12" height="14" border="0"></a></td>
<td align="center">
<input name="imageField" type="image" src="Imagenes/Carrito/actualizar.jpg" width="20" height="20" border="0"></td>
</tr></form>
<?php

}
?>
</table>
<div align="center">Total: €<?php echo number_format($suma,2);

?>
</div><br>
<div align="center">Continuar comprando
<a href="productos.html?<?php echo SID;?>">
<img src="Imagenes/Carrito/continuar.gif" width="13" height="13" border="0"></a>
</div>
<?php } ?>

</body>
</html>
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 21:19.