Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home//domains//public_html/borracar.php:1) in /home//domains/public_html/borracar.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at /home//domains/.com.ar/public_html/borracar.php:1) in /home//domains//public_html/borracar.php on line 13
Código PHP:
<?php
session_start();
//con session_start() creamos la sesión si no existe o la retomamos si ya ha sido creada
extract($_GET);
//Como antes, usamos extract() por comodidad, pero podemos no hacerlo tranquilamente
$carro=$_SESSION['carro'];
//Asignamos a la variable $carro los valores guardados en la sessión
unset($carro[md5($id)]);
//la función unset borra el elemento de un array que le pasemos por parámetro. En este
//caso la usamos para borrar el elemento cuyo id le pasemos a la página por la url
$_SESSION['carro']=$carro;
//Finalmente, actualizamos la sessión, como hicimos cuando agregamos un producto y volvemos al catálogo
header("Location:catalogo.php?".SID);
?>
Código PHP:
<?php
session_start();
//Iniciamos o retomamos la sesión
$carro=$_SESSION['carro'];
//La asignamos a la variable $carro
?>
<html>
<head>
<title>PRODUCTOS AGREGADOS AL CARRITO</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.tit {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9px;
color: #FFFFFF;
}
.prod {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9px;
color: #333333;
}
h1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 20px;
color: #990000;
}
-->
</style>
</head>
<body>
<h1 align="center">Carrito</h1>
<?php
if($carro){
//si el carro no está vacío, mostramos los productos
?>
<table width="720" border="0" cellspacing="0" cellpadding="0" align="center">
<tr bgcolor="#333333" class="tit">
<td width="105">Producto</td>
<td width="207">Precio</td>
<td colspan="2" align="center">Cantidad de Unidades</td>
<td width="100" align="center">Borrar</td>
<td width="159" align="center">Actualizar</td>
</tr>
<?php
$color=array("#ffffff","#F0F0F0");
$contador=0;
//las 2 líneas anteriores sirven para hacer una tabla con colores alternos
$suma=0;
//antes de recorrer todos los valores de la matriz carro, ponemos a cero la variable $suma,
//en la que iremos sumando los subtotales del costo de cada item por la cantidad de unidades que se especifiquen
foreach($carro as $k => $v){
//recorremos la matriz que tiene todos los valores del carro, calculamos el subtotal y el total
$subto=$v['cantidad']*$v['precio'];
$suma=$suma+$subto;
$contador++;//este es el contador que usamos para los colores alternos
?>
<form name="a<?php echo $v['identificador'] ?>" method="post" action="agregacar.php?<?php echo SID ?>" id="a<?php echo $v['identificador'] ?>">
<tr bgcolor="<?php echo $color[$contador%2]; ?>" class='prod'>
<td><?php echo $v['producto'] ?></td>
<td><?php echo $v['precio'] ?></td>
<td width="43" align="center"><?php echo $v['cantidad'] ?></td>
<td width="136" align="center">
<input name="cantidad" type="text" id="cantidad" value="<?php echo $v['cantidad'] ?>" 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'] ?>"><img src="trash.gif" width="12" height="14" border="0"></a></td>
<td align="center">
<input name="imageField" type="image" src="actualizar.gif" width="20" height="20" border="0"></td>
</tr></form>
<?php
//por cada item creamos un formulario que submite a agregar producto y un link que permite eliminarlos
}?>
</table>
<div align="center"><span class="prod">Total de Artículos: <?php echo count($carro);
//el total de items va a ser igual a la cantidad de elementos que tenga la matriz $carro, valor que obtenemos con la
//función count o con sizeof
?></span>
</div><br>
<div align="center"><span class="prod">Total: $<?php echo number_format($suma,2);
//mostramos el total de la variable $suma formateándola a 2 decimales
?></span>
</div><br>
<div align="center"><span class="prod">Continuar la selección de productos</span>
<a href="catalogo.php?<?php echo SID;?>"><img src="continuar.gif" width="13" height="13" border="0"></a>
</div>
<?php }else{ ?>
<p align="center"> <span class="prod">No hay productos seleccionados</span> <a href="catalogo.php?<?php echo SID;?>"><img src="continuar.gif" width="13" height="13" border="0"></a>
<?php }?>
</p>
</body>
</html>
Código PHP:
<?php
ob_start("ob_gzhandler");
//Las funciones ob_start y ob_end_flush te permiten escojer en qué momento enviar el resultado
// de un script al navegador. Si no las utilizamos estamos
//obligados a que nuestra primera línea de código sea session_start() u obtendremos un error
session_start();
//conectamos a la base de datos
mysql_connect("localhost","","");
mysql_select_db("");
//rescatamos los valores guardados en la variable de sesión (si es que hay alguno) y los
//asignamos a $carro
$carro=$_SESSION['carro'];
//y hacemos la consulta
$qry=mysql_query("select * from catalogo order by producto asc");
?>
<html>
<head>
<title>CATÁLOGO</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.catalogo {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9px;
color: #333333;
}
-->
</style>
</head>
<body>
<table width="272" align="center" cellpadding="0" cellspacing="0" style="border: 1px solid #000000;">
<tr valign="middle" bordercolor="#FFFFFF" bgcolor="#DFDFDF" class="catalogo">
<td width="170"><strong>Producto</strong></td>
<td width="77"><strong>Precio</strong></td>
<td width="25" align="right"><a href="vercarrito.php?<?php echo SID ?>" title="Ver el contenido del carrito"><img src="vercarrito.gif" width="25" height="21" border="0"></a></td>
</tr>
<?php
//mostramos todos nuestros artículos, viendo si han sido agregados o no a nuestro carro de compra
while($row=mysql_fetch_assoc($qry)){
?>
<tr valign="middle" class="catalogo">
<td><?php echo $row['producto'] ?></td>
<td><?php echo $row['precio'] ?></td>
<td align="center"><?php
if($carro[md5($row['id'])]['identificador']!=md5($row['id'])){
//si el producto no ha sido agregado, mostramos la imagen de no agregado, linkeada
// a nuestra página de agregar producto y transmitíéndole a dicha
//página el id del artículo y el identificador de la sesión
?><a href="agregacar.php?<?php echo SID ?>&id=<?php echo $row['id']; ?>"><img src="productonoagregado.gif" border="0" title="Agregar al Carrito"></a><?php }
else
//en caso contrario mostramos la otra imagen linkeada., a la página que sirve para borrar el artículo del carro.
{?><a href="borracar.php?<?php echo SID ?>&id=<?php echo $row['id']; ?>"><img src="productoagregado.gif" border="0" title="Quitar del Carrito"></a><?php } ?></td>
</tr><?php } ?>
</table>
</body>
</html>
<?php
ob_end_flush();
?>