Foros del Web » Programando para Internet » PHP »

No puedo modificar la informacion del header

Estas en el tema de No puedo modificar la informacion del header en el foro de PHP en Foros del Web. Hola, estoy diseñando un sitio que trabaja bien en mi PC que posee un sistema operativo Windows XP. Pero cuando paso el sitio al servidor ...
  #1 (permalink)  
Antiguo 22/09/2006, 17:12
 
Fecha de Ingreso: septiembre-2006
Mensajes: 2
Antigüedad: 17 años, 7 meses
Puntos: 0
No puedo modificar la informacion del header

Hola, estoy diseñando un sitio que trabaja bien en mi PC que posee un sistema operativo Windows XP. Pero cuando paso el sitio al servidor que lo va a hospedar me muestra el siguiente error:

Cannot modify header information - headers already sent by (output started at ruta_y_nombre_del_archivo_PHP)

El servidor posee el sistema operativo Linux Debian, estoy utilizando el Header de la siguiente manera:

El sitio posee una pantalla inicial donde se loguean los usuarios, una vez realizado el logueo el sistema le muestra al usuario un menu, el cual varia dependiendo del usuario. Como éste menu va a estar en todas las paginas en las que puede accesar el usuario, lo desarrolle en un archivo aparte y lo relacione con las demas paginas por medio de un INCLUDE el archivo que es llamado desde el INCLUDE es el que maneja los Header, el valor del Header varia dependiendo de la opcion seleccionada en el menu.

Les agradezco toda la ayuda que me puedan brindar...
  #2 (permalink)  
Antiguo 22/09/2006, 17:54
 
Fecha de Ingreso: marzo-2005
Mensajes: 70
Antigüedad: 19 años, 1 mes
Puntos: 0
Por en la primera linea (cuando digo primera, es la primera):

Código PHP:
ob_start(); 
Y en la última:

Código PHP:
ob_end_flush(); 
Saludos.
  #3 (permalink)  
Antiguo 22/09/2006, 18:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por [DARK_RULO] Ver Mensaje
Por en la primera linea (cuando digo primera, es la primera):

Código PHP:
ob_start(); 
Y en la última:

Código PHP:
ob_end_flush(); 
Saludos.
Por favor .. no demos respuestas así sin por lo menos dar algún tipo de argumento. No digo que no sea válida, pero se trata de ver y poner a prueba los conocimientos de PHP y este entorno de desarrollo.

La solución simplemente pasa por "re-ordenar" el código .. a veces ni eso, pues es un simple espacio o salto de línea el que molesta antes de un <? o al final de ?>.

-------------------------------

gabriel031

Como ocultas los n° de línea y scripts que hace mención el mensaje de error .. realmente no se te puede aconsejar mucho donde está tu real problema. Tampoco adjuntas el código que usas por si hay que "re-ordenarlo" como comenté.

No sé si conoces como es el procedimiento de generación de una página vía PHP:

PHP realiza su proceso en el servidor, va generando en un buffer su salida (justamente lo que "forzaba" a almacenarlo [DARK_RULO] con el consiguiente consumo de recursos extra cuando el problema tiene una solución mucho más "limpia" si se conoce como realmente funciona PHP), al terminar el script .. todo esa "salida" se envia al "navegador" (o mejor dicho "cliente") (pasando por el servidor HTTP que es quien realmente lo entrega al cliente).

Bien, .. en ese envio de "datos" desde el servidor HTTP hay unas "cabeceras" que le indican al navegador que tipo de datos está recibiendo y otras propiedades para seguir con tu "código" en sí HTML/Javascript o lo que generes. Esas "cabeceras" son parte del protocolo "HTTP" por el que se rige este ambiente "web". Cuando tu en PHP usas la función "header()" lo que estás haciendo es enviar "cabeceras" forzadas desde PHP (pues PHP se ejecuta "componiendo la página que el cliente verá al final"). Si tu envias "algo" de salida antes de las otras cabeceras .. ese es el problema que tienes, primero van las "cabeceras" y luego los "datos".

más info:
www.php.net/header

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 26/09/2006, 09:06
 
Fecha de Ingreso: septiembre-2006
Mensajes: 2
Antigüedad: 17 años, 7 meses
Puntos: 0
Gracias por tu ayuda con los Headers Cluster, ya resolvi mi problema. El problema era que en las paginas del sitio tengo un INCLUDE que hace referencia a un archivo que contiene un javascript que modifica el titulo de las paginas y éste INCLUDE estaba primero que el INCLUDE de los Headers y por esa razón presentaba el error, solo cambie el INCLUDE del javascript unas lineas mas abajo del INCLUDE que maneja los Headers y listo.
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 05:52.