Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/11/2005, 08:51
mvlsistemas
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 19 años, 11 meses
Puntos: 4
problema con carrito

Hola, esto instalando este script http://www.programacionweb.net/artic...67#comentarios para un carro y me da este error:


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&Aacute;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
(); 
?>