Hola, tengo un problema que me sale el tipico error Cannot modify header information. He comprobado el código y no veo que haya dejado ningún espacio en blanco. A ver si alguien me lo pudiera revisar, me estoy volviendo loco...
Código PHP:
<?php include('connexio.php');?>
<?require("aut_verifica.inc.php");?>
<?
$pag=$_SERVER['PHP_SELF'];// el nombre y ruta de esta misma página.
function cabeceraHTML(){
echo <<< HTML
<html>
<head>
<title>Catàleg</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK REL="stylesheet" TYPE="text/css" href="file:///C|/minixampp/Projecte/Estils/formulari.css">
<script LANGUAGE="JavaScript">
<!--
function CargarFoto(img, ancho, alto){
derecha=(screen.width-ancho)/2;
arriba=(screen.height-alto)/2;
string="toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width="+ancho+",height="+alto+",left="+derecha+",top="+arriba+"";
fin=window.open(img,"",string);
}
// -->
</script>
</head>
<body bgcolor="#FFFFCC">
HTML;
} <----- linea 28!!!
if (!isset($_GET['accio'])){
$consulta_article = mysql_query("SELECT Cataleg,Codi_article,Nom_article,Tipus_article,Desc_article,articles.Codi_dist,distribuidors.Codi_dist,Nom_dist,Imatge,PVP_IVA_inclos FROM articles,distribuidors WHERE articles.Codi_dist=distribuidors.Codi_dist AND articles.cataleg=1 ORDER BY Codi_article") or die("No se pudo realizar la consulta a la Base de datos");
while($resultats = mysql_fetch_array($consulta_article)) {
cabeceraHTML()
echo <<< HTML
<tr>
<td width="5%" bgcolor="#FFFFEA"><div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><img src="http://localhost/upload/$resultats[Imatge]" width="30" height="30" name="imagen"></font></div></td>
<td width="20%" bgcolor="#FFFFEA"><div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000"><a class="a" href="$pag?accio=editar&id=$resultats[Codi_article]">$resultats[Nom_article]</font></div></td>
<td width="30%" bgcolor="#FFFFEA"><div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultats[Desc_article]</font></div></td>
<td width="10%"bgcolor="#FFFFEA"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">$resultats[PVP_IVA_inclos]</font></div></td>
</tr>
HTML;
}
echo "</table>";
mysql_free_result($consulta_article);
mysql_close();
}
if ($_GET['accio']=="editar"){
cabeceraHTML();
$codi= $_GET['id'];
$consulta_article = mysql_query("SELECT Codi_article,Nom_article,Tipus_article,Desc_article,articles.Codi_dist,distribuidors.Codi_dist,Nom_dist,Cost,Codi_barres,Tipus_IVA,PVP,PVP_IVA_inclos,Imatge FROM articles,distribuidors WHERE Codi_article=$codi AND articles.Codi_dist=distribuidors.Codi_dist ORDER BY Codi_article") or die("No se pudo realizar la consulta a la Base de datos");
while($resultats = mysql_fetch_array($consulta_article)) {
echo <<< HTML
<table width="470" border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td valign="top" bgcolor="#0992F0" width="50"><img src="http://localhost/upload/imatges/Ico_Titol_CD.gif" width="36" height="28"></td>
<td bgcolor="#0992F0" width="200" align='left'><b>$resultats[Nom_article]</b></td>
</tr>
<tr><td colspan="3" height="1"></td></tr>
<tr><td colspan="3" height="1" bgcolor="#0992F0"><img src="/images/spacer.gif" width="1" height="1"></td></tr>
</table>
<br/>
<table width="470" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td bgcolor="#FFFFFF" width="100" class="barres">Descripció</td>
</tr>
<tr>
<td height="5" colspan="2"></td>
</tr>
</table>
<form method="post">
<table width="470" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="105">
HTML;
echo "<a href=\"javascript:CargarFoto('http://localhost/upload/".$resultats["Imatge"]."','400','400')\">";
echo "<img border=\"0\"src=\"http://localhost/upload/".$resultats["Imatge"]."\" width=\"90\" height=\"90\" name=\"imagen\"></a>";
cabeceraHTML();
echo <<< HTML
<td width="365" bgcolor="#CCCCCC">
<table width="365" border="0" cellspacing="1" cellpadding="0" height="100">
<TR bgcolor='#FFFFFF'>
<TD align='right' class='txt' width='130'>Nom </TD>
<TD><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="Navy"><b> $resultats[Nom_article]</b></font></TD>
</TR>
<TR bgcolor='#FFFFFF'>
<TD align='right' class='txt' width='130'>Descripció </TD>
<TD><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="Navy"><b> $resultats[Desc_article]</b></font></TD>
</TR>
<TR bgcolor='#FFFFFF'>
<TD align='right' class='txt' width='130'>Família </TD>
<TD><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="Navy"><b> $resultats[Tipus_article]</b></font></TD>
</TR>
<TR bgcolor='#FFFFFF'>
<TD align='right' class='txt' width='130'>Distribuïdor </TD>
<TD><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="Navy"><b> $resultats[Nom_dist]</b></font></TD>
</TR>
<TR bgcolor='#FFFFFF'>
<TD align='right' class='txt' width='130'>Codi identificació </TD>
<TD><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="Navy"><b> $resultats[Codi_article]</b></font></TD>
</TR>
<TR bgcolor='#FFFFFF'>
<TD align='right' class='txt' width='130'>Preu </TD>
<TD><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="Navy"><b> $resultats[PVP_IVA_inclos] €</b></font></TD>
</TR>
</table>
</td>
</tr>
</table>
</form>
<table width="470" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td bgcolor="#FFFFFF" width="100" class="barres">Compra</td>
</tr>
<tr>
<td height="5" colspan="2"></td>
</tr>
</table>
<form name="compra" method="POST" action="$pag">
<table width="470" border="0" cellspacing="0" cellpadding="0" bgcolor="#999999" align="center">
<tr>
<td>
<table width="470" border="0" cellspacing="1" cellpadding="1" align="center">
<tr bgcolor="#FFFFFF">
<td align="center" width="20%" bgcolor="#FFFFFF" class="txt">Codi</td>
<td align="center" width="25%" bgcolor="#FFFFFF" class="txt">Preu </td>
<td align="center" valign="middle" width="45%" bgcolor="#FFFFFF" class="txt" rowspan="2">
<table>
<tr>
<td valign="middle" rowspan="2" valign="middle">
<input type="text" name="cant" size="2" class="inputbox" value="1" maxlength="3"/>
</td>
<td valign="bottom">
<input name="enviar" value="continue" type="submit" class="botons">
</td>
</tr>
<tr>
<td valign="top">
<input name="enviar" value="acabar" type="submit" class="botons">
</td>
</tr>
</table>
</td>
</tr>
<tr><td align="center" width="20%" bgcolor="#FFFFFF"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="Navy"><b>$resultats[Codi_article]</b></td>
<td align="right" width="20%" bgcolor="#FFFFFF"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="Navy"><b>
<b>$resultats[PVP_IVA_inclos] € </b>
</td>
</tr>
<input type="hidden" name="it" size="2" class="inputbox" value="$resultats[Codi_article]" maxlength="3"/>
</table>
</td>
</tr>
</table>
</form>
HTML;
}
mysql_free_result($consulta_article);
mysql_close();
}
if ($_POST['enviar']=="continue"){
$item=$_POST['it'];
$cantidad=$_POST['cant'];
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;
header ("Location: [url]http://localhost/pantalles/cataleg/cataleg.php[/url]");
exit;
}
if ($_POST['enviar']=="acabar"){
header ("Location: [url]http://localhost/pantalles/cataleg/compra.php[/url]");
exit;
$item=$_POST['it'];
$cantidad=$_POST['cant'];
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;
if (isset($itemsEnCesta)){
echo'El contingut del carrito és:<br>';
foreach($itemsEnCesta as $k => $v){
echo 'Article: '.$k.' Unitats: '.$v.'<br>';
}
}
}
?>
</BODY>
</HTML>
El error es este:
Warning: Cannot modify header information - headers already sent by (output started at C:\minixampp\Projecte\Pantalles\cataleg\cataleg.ph p:28) in C:\minixampp\Projecte\Pantalles\cataleg\cataleg.ph p on line 270.
La linea 28 es donde acaba la funcion cabeceraHTML(). Lo encuentro raro porque me falla al realizar el form compra hecho con 2 botones (uno que compre y siga, y el otro que compre y muestre el resultado). No sé si es que lo he hecho mal o que ya que si lo paso directo a través del action del form de compras, con un solo submit por eso, no me sale error.
Jaume
[email protected]