Foros del Web » Programando para Internet » PHP »

problema con header

Estas en el tema de problema con header en el foro de PHP en Foros del Web. <? if ($_GET[modificar]){ header("Location:http://localhost/impulse/admin/modificar.php"); } ?> este es mi codigo error Warning: Cannot modify header information - headers already sent by como lo resuelvo que ...
  #1 (permalink)  
Antiguo 03/08/2008, 09:48
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Sonrisa problema con header

<? if ($_GET[modificar]){
header("Location:http://localhost/impulse/admin/modificar.php");
}
?>

este es mi codigo

error Warning: Cannot modify header information - headers already sent by

como lo resuelvo que tengo mal.?
  #2 (permalink)  
Antiguo 03/08/2008, 10:27
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problema con header

Agrega esto antes de cualquier etiqueta HTML:
Código PHP:
<?php
ob_start
();
?>
Y esto al final de toda etiqueta HTML:
Código PHP:
<?php
ob_flush
();
?>
  #3 (permalink)  
Antiguo 03/08/2008, 10:42
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 18 años, 5 meses
Puntos: 281
Respuesta: problema con header

no puedes tener ningún tipo de informacióm html, ni siquiera un espacio en blanco, antes de enviar las cabeceras. Si tienes alguno puedes usar un ob_start().

Edito*

Me gano Ronruby...
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #4 (permalink)  
Antiguo 03/08/2008, 10:45
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: problema con header

Bueno, el error está claro: la cabecera ya ha sido enviada.
Si se leen las coss todo va mucho mejor ;)

En resumen, antes del header() o has enviado un tag html/xml o has enivado algún tipo de echo/print, etc. u otras cosas de salida a la página.

La solución mas adecuada es evitar esas salidas, que a parte son inútiles si al fin y al cabo lo vas a redireccionar. Y otra cosa, intenta usar comillas simples en vez de dobles, son lo más adecuado si no vas a insertar variables que lo requieran.

La solución que aporta Ronruby yo la verdad es que no lo veo muy adecuado, principalmente porque ¿qué necesidad hay de lanzar cosas a la página si después vas a redireccionar?, también porque guardas un buffer de output y después lo redireccionas con lo que no sigue el script y se queda perdido. Es malbaratar recursos.
Eso sólo debe usarse asegurándose de lo que se guarda sale o se elimina - aunque sea sin imprimirse -, y que es estrictamente necesario lanzar todo el output de golpe si se cumplen las condiciones. A parte de asegurarse que no hay otra posibilidad de poner las cosas en un orden más adecuado.

Por lo general, la jerarquía que considero más apropiada para trabajar es hacer las cosas así:
1- Inicializar sesiones en caso de ser necesario (es decir, si las usarás).
2- Enviar cabeceras, ya sea con header() u de otras formas.
3- Si no se ha echo en el paso 2, y si se va usar html/xml/otros, enviar la cabecera del lenguaje.
  #5 (permalink)  
Antiguo 03/08/2008, 10:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con header

de acuerdo con Mort....

no hay necesidad de buffers, y menos... de imprimir si vamos a redireccionar

como el menciona, leer.... sobre todo, leer... alguna referencia de PHP y si, es mejor procesar todo antes de comenzar a imprimir....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 03/08/2008, 12:09
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: problema con header

no te redirecciona simplemente por que estas mostrando algo arriba de ese codigo.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #7 (permalink)  
Antiguo 03/08/2008, 14:32
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Sonrisa Respuesta: problema con header

Cita:
Iniciado por Ronruby Ver Mensaje
Agrega esto antes de cualquier etiqueta HTML:
Código PHP:
<?php
ob_start
();
?>
Y esto al final de toda etiqueta HTML:
Código PHP:
<?php
ob_flush
();
?>
Muchas gracias..... esto lo arreglo.

salu2.
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 09:14.