Foros del Web » Programando para Internet » PHP »

error con header

Estas en el tema de error con header en el foro de PHP en Foros del Web. como puedo hacer para evitar esto: Warning: Cannot add header information - headers already sent by (output started at in /enviarcontacto.php on line 50 linea ...
  #1 (permalink)  
Antiguo 09/01/2003, 16:59
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 22 años, 3 meses
Puntos: 0
error con header

como puedo hacer para evitar esto:

Warning: Cannot add header information - headers already sent by (output started at in /enviarcontacto.php on line 50

linea 50: header("refresh:3;url=index.php");

se el porque sucede, pero no se como evitarlo
  #2 (permalink)  
Antiguo 09/01/2003, 17:09
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
eso sucede porque los header debes mandarlos antyes que nada en la pagina, es decir, antes de hacer cualquier hecho, print, printf, seguramente ya haz echo uno, por eso el error, y si no quieres ver los mensajes de error solo debes anteponer un @ delante de cualquier funcion que queras no muestre los errores, por ejemplo

Código PHP:
@mysql_connect() 
Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 10/01/2003, 08:20
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 22 años, 3 meses
Puntos: 0
Cita:
Mensaje Original por goncafa
eso sucede porque los header debes mandarlos antyes que nada en la pagina, es decir, antes de hacer cualquier hecho, print, printf, seguramente ya haz echo uno, por eso el error, y si no quieres ver los mensajes de error solo debes anteponer un @ delante de cualquier funcion que queras no muestre los errores, por ejemplo

Código PHP:
@mysql_connect() 
Saludos
si pero eso es esconder un error y de igual manera la pagina no anda

lo que yo me pregunto es si hay otra funcion que haga un redireccionamiento igual que en asp trabaja el response.redirect
  #4 (permalink)  
Antiguo 10/01/2003, 08:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Literalmente .. el "responde.redirect" seria en php:

header("location: pagina.tal");

Eso si, .. no puedes hacer esto:

Código PHP:
<html>
<head>
</head>
<body>
<?
$tal
=true;
  if (
$tal){
     
header("location: pagina.tal");
     exit;
  } 
echo 
"bla bla bla"// esto es PHP
?>
</body>
</html>
Eso no es correcto .. ese HTML antes de header() es interpretado como envio de "cabeceras" ..

El ejemplo anterior se deberia usar:
Código PHP:
<?
$tal
=true;
if (
$tal){
     
header("location: pagina.tal");
     exit;
  }
?>
<html> 
<head>
</head>
<body>
<?
 
echo "bla bla bbla"// esto es PHP
?>
</body>
</html>
Hay otra técnica .. se trata de usar y manejar el buffer de salida con las funcones ob_xxx() (http://www.php.net/manual/en/ref.outcontrol.php) con lo cual podras enviar cabeceras (header()) y cookies en cualquier momento tal cual el primer ejemplo.

Te recomiendo que programes con conciencia de uso de header() y organices tu código en consecuencia tipo ejemplo 2 ...

Un saludo,
  #5 (permalink)  
Antiguo 10/01/2003, 10:26
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
en todo caso, si lees bien mi respuesta si te habia dicho el porque pasaba eso, y en consecuencia, debias deducir como solucionarlo muy facilmente, pero como preguntabas como hacer para que no aparesca el warning, te respondi poniendo el @.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #6 (permalink)  
Antiguo 10/01/2003, 12:31
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 22 años, 3 meses
Puntos: 0
Cita:
Mensaje Original por goncafa
en todo caso, si lees bien mi respuesta si te habia dicho el porque pasaba eso, y en consecuencia, debias deducir como solucionarlo muy facilmente, pero como preguntabas como hacer para que no aparesca el warning, te respondi poniendo el @.

Saludos


lo malo es que tengo 2 header en esa pagina, pero mas o menos lo resolvi.

lo que me preguntaba es si existia otra forma de hacerlo porque en asp simplemente ese problema se resuelve poniendo response.buffer=true en la primera linea
  #7 (permalink)  
Antiguo 10/01/2003, 12:40
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
pues ya Cluster te respondio como debes hacer el manejo del buffer, esta en link que el puso en su respuesta

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #8 (permalink)  
Antiguo 10/01/2003, 12:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Yo te respondí a eso:
response.buffer=true

en php es:
Cita:
Hay otra técnica .. se trata de usar y manejar el buffer de salida con las funcones ob_xxx() (http://www.php.net/manual/en/ref.outcontrol.php) con lo cual podras enviar cabeceras (header()) y cookies en cualquier momento tal cual el primer ejemplo.
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 03:38.