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. Saludos. Mi inquietud es la siguiente: Tengo una página que funciona sin problemas en PHP 4.3.10 y apache 2, pero estoy probandola ahora con PHP5 ...
  #1 (permalink)  
Antiguo 07/12/2005, 19:26
 
Fecha de Ingreso: agosto-2004
Mensajes: 79
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta Problema con header

Saludos.
Mi inquietud es la siguiente: Tengo una página que funciona sin problemas en PHP 4.3.10 y apache 2, pero estoy probandola ahora con PHP5 y no funciona correctamente. No se si tenga algo que ver con las versiones de PHP.
El error que me sale es:
Warning: Cannot modify header information - headers already sent by (output started at C:\Archivos de programa\Apache Group\Apache2\htdocs\sitio\registro.php:13) in C:\Archivos de programa\Apache Group\Apache2\htdocs\sitio\registro.php on line 28

La linea 28 a la que hace referencia es:
header("Location:gestionar.php");

Qué tendría que cambiar ??

Por favor si me pueden colaborar con esta duda les agradezco.
  #2 (permalink)  
Antiguo 07/12/2005, 19:42
Avatar de bossm4  
Fecha de Ingreso: noviembre-2005
Ubicación: Torrelodones, España
Mensajes: 92
Antigüedad: 12 años, 1 mes
Puntos: 0
Si has hecho alguna salida por pantalla antes del header no te va a funcionar jeje. De todas formas yo para las redirecciones utilizo lo siguiente:

Código PHP:
echo "<script language=javascript> parent.location = 'nombrepagina.php';</script>"
__________________
Madrid - Zaragoza - Sevilla | www.hucaconsulting.es | Desarrollo gráfico y web a medida
  #3 (permalink)  
Antiguo 07/12/2005, 20:14
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 14 años, 11 meses
Puntos: 8
El error significa que mostraste "algo" es decir hiciste un print de quien sabe que ANTES de llamar a la funcion Header. para la cual no debes producir salida alguna.
  #4 (permalink)  
Antiguo 07/12/2005, 21:29
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 12 años, 10 meses
Puntos: 11
Cita:
Warning: Cannot modify header information - headers already sent by (output started at C:\Archivos de programa\Apache Group\Apache2\htdocs\sitio\registro.php:13) in C:\Archivos de programa\Apache Group\Apache2\htdocs\sitio\registro.php on line 28

Típico error en PHP... en la linea uno(1) de tu página coloca esto:

ob_start(); // siempre debe estar al inicio de todo codigo


y en la ultima linea

ob_end_flush();

y listo... nunca más verás esos molestosos mensajes...


nota: eso de usar echo "<script language=javascript> parent.location = 'nombrepagina.php';</script>"; No es seguro si haces redirecciones cuando la sesion no esta activa por ejemplo... hay maneras de entrar al sistema de manera facil si usas ese tipo de codificación.

Saludos.
  #5 (permalink)  
Antiguo 08/12/2005, 05:36
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por richardinj
Típico error en PHP... en la linea uno(1) de tu página coloca esto:

ob_start(); // siempre debe estar al inicio de todo codigo


y en la ultima linea

ob_end_flush();

y listo... nunca más verás esos molestosos mensajes...
Pero eso no es una solución propiamente dicha.... sería más bien como "un truco" que se logra al malemplear dichas funciones. Lo que hacen no es más que forzar la salida al navegador... con ello un gasto de recursos inecesario.

La solución real es de lo más "simple"... organizarse y ordenar el código a manera de no tener NINGUNA salida si ha de emplearse dicha función (entre otras).

El motivo de con el cambio de versión te haya aparecido dichos mensajes... es por la misma configuraación; seguramente antes tenias la directiva error_reporting a cero... osease solo se indicaba que no te mostrara dichos mensajes. Hace poco sucedió lo mismito con otro usuario...

Ah! y sí es tema muy común . Hay que darle uso al buscador .

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 08/12/2005, 08:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El error te dice Exactamente donde tienes el problema:

Cita:
Warning: Cannot modify header information - headers already sent by (output started at C:\Archivos de programa\Apache Group\Apache2\htdocs\sitio\registro.php:13) in C:\Archivos de programa\Apache Group\Apache2\htdocs\sitio\registro.php on line 28
Ese "nombre_script.php" y : n° significa .. que en esa línea está el problema. Concretamente el problema es todo lo que indicó jam1138 y concuerdo con el en el aspecto de que la solución no pasa por usar un par de funciones (que tal vez no se conoce que implica el uso de ellas pues "soluciona el problema" a costa de consumo de recursos del servidor extra que se pueden evitar).

Si indicas el código completo que usas se te podrá orientar como ordenar tu código para que no tengas esa situación.

Re-ordenar el código implica algo más de fondo: saber como realmente funciona PHP. Cuando ese concepto se tiene claro hay muchaaaaaas otras que se ven más claras.

Se debe pensar en que uno programa en PHP generando páginas HTML "dinámicas" .. NO en que incrustra PHP sobre páginas HTML. Ese concepto tan simple de escribir en una línea (y para algunos complejo de entender) es la base de todo esto. Lo mejor de todo esto es que no es aplicable este concepto a PHP sólo sino para cualquier lenguaje del lado del servidor: ASP, Perl, .. etc (cuando se emplean para generar páginas dinámicas).

Un saludo,
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 06:39.