Foros del Web » Programando para Internet » PHP »

probremas con header y echo

Estas en el tema de probremas con header y echo en el foro de PHP en Foros del Web. cuando le doy ha aztualizar en vacio me da el error Warning: Cannot modify header information - headers already sent by (output started at htdocs/apedidos/reprueba.php:117) ...
  #1 (permalink)  
Antiguo 23/06/2003, 12:20
 
Fecha de Ingreso: febrero-2003
Mensajes: 93
Antigüedad: 14 años, 9 meses
Puntos: 0
probremas con header y echo

cuando le doy ha aztualizar en vacio me da el error Warning: Cannot modify header information - headers already sent by (output started at htdocs/apedidos/reprueba.php:117) in /htdocs/apedidos/reprueba.php on line 207

por favor en vez de ese echo que podría poner ya que tengo que escribir ese echo como sea


Código PHP:
<?php
        
require("bd_config.inc.php");
      
$error_end[0]="El código de cliente no existe";
    
$error_end[1]="Debe introducir una referencia de pedido";
  
//guarda la caché de las paginas
  //session_cache_limiter('private');
  
      
session_name($usuarios_sesion);
      
session_start();
    
    
//guardamos las maquinas introducidas en un array de sesion
    
    
if(isset($_POST['maquina'])){
        
$_SESSION['maquinas']=$_POST['maquina'];
    }

    
$pag=$_SERVER['PHP_SELF'];    

function 
cabeceraHTML(){
echo <<< EOT
<HTML>
<HEAD>
<TITLE>hoja de pedidos</TITLE>
 </HEAD>
<BODY BGCOLOR="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<TABLE WIDTH=811 BORDER=0 CELLPADDING=0 CELLSPACING=0>
  <TR> 
    <TD height="40">&nbsp;</TD>
    <TD width="112" rowspan="2">&nbsp;</TD>
    <TD colspan="2"><div align="center"><img src="../imagenes/pedidos.gif" width="159" height="30"></div></TD>
  </TR>
  <TR> 
    <TD height="33">&nbsp; </TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
  </TR>
  <TR> 
    <TD width="1" ROWSPAN=2>&nbsp; </TD>
    <TD width="112">&nbsp;</TD>
    <TD width="37"> <IMG SRC="Sin-t%EDtulo-1_03.gif" WIDTH=37 HEIGHT=49></TD>
    <TD width="658" height="49"> <IMG SRC="Sin-t%EDtulo-1_04.gif" WIDTH=656 HEIGHT=49></TD>
  </TR>
  <TR> 
    <TD width="112" valign="top"> 
      <table width="111" height="127">
        <TR>
          <TD height="15">&nbsp;</TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Lumelco</font></div></TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Delegaciones</font></div></TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Actividades</font></div></TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Catalogo</font></div></TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Area 
              de clientes</font></div></TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Novedades</font></div></TD>
        </TR>
        
      </table></TD>
    <TD width="37" height="563" background="Sin-t%EDtulo-1_06.gif" valign="top">  
    </TD>
    <TD valign="top">

    <table width="380" align="center">

<tr bgcolor="#8EA5BF"> 
<td bgcolor="#D2DCE6" colspan="2"> <center>
<font color="526F91" size="3" face="Verdana, Arial, Helvetica, sans-serif">Este es su pedido </font> </center></td>
</tr>
<tr bgcolor="#8EA5BF"> 
<td width="140"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b>Referencia</b></font> 
</div></td>
<td width="139"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b>Cantidad</b></font> 
</div></td>
</tr>
<tr bgcolor="#FFFFFF">

EOT;

foreach (
$_SESSION['maquinas'] as $name => $valor)
{
if (
$valor>0)
{
$maquinas[$name] = $valor;

//-----------------------------------------------------
// en este echo me da el error                    |
//-----------------------------------------------------
echo <<<EOT
<tr bgcolor="#FFFFFF"><td width="50%"><div align="center"><font size="2">$name</font></div></td> <td>
<div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$valor</font></div></td>
EOT;
}
}
$_SESSION['maquinas']=$maquinas;
    echo 
"</tr> </table> ";
}

cabeceraHTML();

    
//validamos  al grupo ENDESA
    
if ($_SESSION['usuario_nivel']==2){
        
        
//se repite cuando se entra la 1º vez o cuando no exista el codigo de cliente
        
    
if ($_GET['accion']=="query_codcli"){
        
                if (
$_SESSION['albaran']['RefPedido']==""){
                
header ("Location: $pag?erren=1");
                exit;
            }
        
        
//nos conectamos a la base de datos
        
$conectar_bdmysql_connect("$host_bd""$nombre_bd""$password_bd")
        or die( 
mysql_error());
        
        
mysql_select_db("g")
        or die (
mysql_error());
        
        
//hacemos la consulta para saber si existe el codigo de cliente
        
$consulta_usuariomysql_query ("SELECT CDPS, S FROM ENDESA WHERE CDPS='{$_SESSION['albaran']['Cod_cliente']}'");
            if (
mysql_num_rows($consulta_usuario)<1){
            
header"Location: $pag?erren=0");
            }
        
//or die    (header( "Location: $pag?erren=0"));

        //cerramos conexion
        
mysql_close();

        

}            
?>
</TD>
</TR>
</table>
</BODY>
</HTML>
  #2 (permalink)  
Antiguo 23/06/2003, 12:24
 
Fecha de Ingreso: febrero-2003
Mensajes: 93
Antigüedad: 14 años, 9 meses
Puntos: 0
he estado buscando los mismos errores en este foro pero tampoco me ha quedado muy claro lo que hago mal
  #3 (permalink)  
Antiguo 23/06/2003, 12:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El problema que tienes es de estructura ..

Fijate primero que antes de la ejecución de tus header() o session_start() no debe existir náda de HTML por encima (ni un salto de línea ni un simple espacio).

Reordena tu código. La función cabeceraHTML() que usas debe ser llamada SÓLO cuando tengas que presentar algun dáto al navegador no cuando procesas por ejemplo esas variables de sesion para redireccionar si hay algún error .. Lo mismo ocurre con el código HTML restante que usas ..

Fijate .. edita tu código generado y observalo (en tu navegador Edición -> ver código fuente)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 23/06/2003, 12:34
 
Fecha de Ingreso: febrero-2003
Mensajes: 93
Antigüedad: 14 años, 9 meses
Puntos: 0
Solamente me ocurre cuando $maquinas tiene mas de 1 valor.
que estoy haciendo mal?
  #5 (permalink)  
Antiguo 23/06/2003, 12:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Revisastes ya el código HTML que generas?

Un saludo
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 24/06/2003, 02:46
 
Fecha de Ingreso: febrero-2003
Mensajes: 93
Antigüedad: 14 años, 9 meses
Puntos: 0
Bien al final a quedado asi y no me sale el error, he divido la funcion en dos y ahora las llamo desde dentro de los if.

Lo hago asi para que los errores me salgan dentro de la tabla, por lo tanto simpre que hay un error tengo que llamar a las funciones.

Muchas gracias cluster
¿crees que sigue estando mal


Código PHP:

<?php
    
require("bd_config.inc.php");
      
$error_end[0]="El código de cliente no existe";
    
$error_end[1]="Debe introducir una referencia de pedido";
  
//guarda la caché de las paginas
  //session_cache_limiter('private');
  
      
session_name($usuarios_sesion);
      
session_start();
    
    
//guardamos las maquinas introducidas en un array de sesion
    
    
if(isset($_POST['maquina'])){
        
$_SESSION['maquinas']=$_POST['maquina'];
    }

    
$pag=$_SERVER['PHP_SELF'];    

function 
cabeceraHTML(){
echo <<< EOT
<HTML>
<HEAD>
<TITLE>hoja de pedidos</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<TABLE WIDTH=811 BORDER=0 CELLPADDING=0 CELLSPACING=0>
  <TR> 
    <TD height="40">&nbsp;</TD>
    <TD width="112" rowspan="2">&nbsp;</TD>
    <TD colspan="2"><div align="center"><img src="../imagenes/pedidos.gif" width="159" height="30"></div></TD>
  </TR>
  <TR> 
    <TD height="33">&nbsp; </TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
  </TR>
  <TR> 
    <TD width="1" ROWSPAN=2>&nbsp; </TD>
    <TD width="112">&nbsp;</TD>
    <TD width="37"> <IMG SRC="../imagenes/esq_1.gif" WIDTH=37 HEIGHT=49></TD>
    <TD width="658" height="49"> <IMG SRC="../imagenes/hor_1.gif" WIDTH=656 HEIGHT=49></TD>
  </TR>
  <TR> 
    <TD width="112" valign="top"> 
      <table width="111" height="127">
        <TR>
          <TD height="15">&nbsp;</TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Lumelco</font></div></TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Delegaciones</font></div></TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Actividades</font></div></TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Catalogo</font></div></TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Area 
              de clientes</font></div></TD>
        </TR>
        <TR> 
          <TD height="15"> <div align="center"><font color="#999999" size="1" face="Verdana, Arial, Helvetica, sans-serif">Novedades</font></div></TD>
        </TR>
        
      </table></TD>
    <TD width="37" height="563" background="../imagenes/vert_1.gif" valign="top">  
    </TD>
    <TD valign="top">

EOT;

}


    function 
maquinasHTML(){

echo <<< MAQ
<table width="380" align="center">

<tr bgcolor="#8EA5BF"> 
<td bgcolor="#D2DCE6" colspan="2"> <center>
<font color="526F91" size="3" face="Verdana, Arial, Helvetica, sans-serif">Este es su pedido </font> </center></td>
</tr>
<tr bgcolor="#8EA5BF"> 
<td width="140"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b>Referencia</b></font> 
</div></td>
<td width="139"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b>Cantidad</b></font> 
</div></td>
</tr>

MAQ;

foreach (
$_SESSION['maquinas'] as $name => $valor)
{
if (
$valor>0)
{
$maquinas[$name] = $valor;

echo <<<EOT
<tr bgcolor="#FFFFFF"><td width="50%"><div align="center"><font size="2">$name</font></div></td> <td>
<div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$valor</font></div></td>
EOT;
}
}
$_SESSION['maquinas']=$maquinas;
    echo 
"</tr> </table> ";
    
}
    

    
    if (
$_SESSION['usuario_nivel']==2){
        
        
//se repite cuando se entra la 1º vez o cuando no exista el codigo de cliente
        
if (!isset($_GET['accion']) || isset($_GET['erren'])){
            
            
cabeceraHTML();
            
maquinasHTML();

echo <<< EOT
<p></p>
<table width="386" align="center">
        <form name="pedidos" method="post" action="/apedidos/reprueba.php?accion=query_codcli">
          <tr> 
            <td width="216" valign="top"><div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Codigo 
                de cliente<br>
                </strong></font></div></td>
            <td width="158"> <div align="left"> 
                <input type="text" name="Cod_cliente"  maxlength="15" size="20" >
              </div></td>
          </tr>
          <tr> 
            <td valign="top"> <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Referencia 
                de pedido: </b></font></div></td>
            <td> <input type="text" name="RefPedido"  maxlength="15" size="20" ></td>
          </tr>
          <tr>
            <td colspan="2" valign="top">&nbsp;</td>
          </tr>
          <tr> 
            <td colspan="2" valign="top"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Observaciones 
                :</b></font></div></td>
          </tr>
          <tr> 
            <td colspan="2" valign="top"><div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"></font></div>
              <div align="center"> 
                <textarea name="Observaciones" wrap="soft"  rows="3" cols="30"  ></textarea>
              </div></td>
          </tr>
          <tr> 
            <td colspan="2"><div align="center"> &nbsp;</div></td>
          </tr>
          <tr> 
            <td colspan="2"><div align="center"> 
                <input type="image" name="submit" src="../../imagenes/actualizar.gif" width="68" height="23"  class="botones">
              </div></td>
          </tr>
          <tr> 
            <td colspan="2" align"center"> 

EOT;
      
     if (isset(
$_GET['erren'])){
        
$error=$_GET['erren'];
        echo 
"<div align=\"center\"><font color='#FF0000' size='1' face='Verdana, Arial, Helvetica, sans-serif'>ERROR: $error_end[$error]</font>";
        }

        echo    
"</div></div></td>  </tr></form></table>";
    }


    if (
$_GET['accion']=="query_codcli"){
    

        
$_SESSION['albaran']['RefPedido']=$_POST['RefPedido'];
        
$_SESSION['albaran']['Cod_cliente']=$_POST['Cod_cliente'];
        
$_SESSION['albaran']['Observaciones']=$_POST['Observaciones'];
        
            if (
$_SESSION['albaran']['RefPedido']==""){
                
header ("Location: $pag?erren=1");
                exit;
            }

        
        
//nos conectamos a la base de datos
        
$conectar_bdmysql_connect("$host_bd""$nombre_bd""$password_bd")
        or die( 
mysql_error());
        
        
mysql_select_db("g")
        or die (
mysql_error());
        
        
//hacemos la consulta para saber si existe el codigo de cliente
        
$consulta_usuariomysql_query ("SELECT * FROM g2 WHERE CDPS='{$_SESSION['albaran']['Cod_cliente']}'");
            if (
mysql_num_rows($consulta_usuario)<1){
            
header"Location: $pag?erren=0");
            }
        
//or die    (header( "Location: $pag?erren=0"));

        //cerramos conexion
        
mysql_close();
                
        
cabeceraHTML();
        
maquinasHTML();
        
        
mysql_free_result($consulta_usuario);
    }
}            
?>
</TD>
</TR>
</table>
</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 14:07.