PHP - redireccionar

 
Vista:

redireccionar

Publicado por alejandro (36 intervenciones) el 22/09/2003 18:12:47
ocurre lo siguiente:
tengo un archivo (carga.php), el cual establece el valor de un parametro y hago: header (Location:aplicacion.php?exito=si)

desde aplicacion.php compruebo si exito=si, en ese caso quiero hacer una redireccion a otra pagina (mensaje.php), haciendo:
header (Location:mensaje.php), pero me tira el siguiente error:

Warning: Cannot add header information - headers already sent by (output started at /home/jubi/htdocs/inicio/ddjj/seguridad.php:12) in /home/jubi/htdocs/inicio/ddjj/aplicacion.php on line 70

hay alguna otra forma de "llamar" desde un archivo a otro archivo?.

gracias


Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:redireccionar

Publicado por Mariano Pelizzari (170 intervenciones) el 22/09/2003 19:49:00
Vivan las declaraciones juradas!!!

Tu error se produce porque antes del header("location... estas escribiendo algo en la pagina, ya sea mediante echo o algun otro metodo. Acordate que las headers siempre deben ira antes de escribir (echo ,print , etc) algo en la pagina.
No entiendo porque tenes que redireccionar 2 veces. No le encuentro sentido, pero bueno.
Espero sirva. Slds
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redireccionar

Publicado por alejandro (36 intervenciones) el 22/09/2003 21:49:09
en realidad no redirecciono 2 veces, sino que recargo la pagina y muestro un texto dependiendo del parametro que me llega (aplicacion.php?error=si/no).
no se me ocurrio otra forma de hacerlo. si se puede hacer de otra forma diganmelo.
gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redireccionar

Publicado por Sito (122 intervenciones) el 22/09/2003 20:35:36
Incluye en la PRIMERA línea de la página una llamada a ob_start():

Así, quedarían estas 3 primeras líneas en la página:

<?php
ob_start();
?>

Esto debe aplicarse a la página que se carga. Me explico, si aplicacion.php es llamada mediante un include, el ob_start() deberá estar en la página que tiene el include citado(en resumidas cuentas, la página de 'primer nivel').

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ojo con ob_start

Publicado por Mariano Pelizzari (170 intervenciones) el 22/09/2003 20:47:32
Si tenemos una pagina en la que el header (" location..") depende de una condicion (por ejemplo despues del submit de un formulario) y colocamos ob_start() al principio la pagina no se va a mostrar a menos que usemos ob_end_flush() al final de la misma para que el buffer almacenado se muestre. para mas info:
http://ar2.php.net/manual/en/function.ob-start.php;
espero sirva. Slds.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ojo con ob_start

Publicado por Sito (122 intervenciones) el 22/09/2003 23:23:27
Aunque la función ob_end_flush() debería ser utilizada siempre que se active la caché de salida, a efectos prácticos parece tener más utilidad para volcar el contenido del búfer arbitrariamente y desactivarlo antes de la finalización de la carga de la página.

Al hilo de ésto, unas notas(todas ellas de PHP.net):

Respecto a ob_end_flush:
"If you start output buffering with ob_start() and don't terminate buffering with ob_end_flush() or ob_end_clean(), the buffered content will be implicitly flushed at the end of your script "

Respecto a ob_start():
"The function will be called when ob_end_flush() is called, or when the output buffer is flushed to the browser at the end of the request"

De todos modos es bastante interesante(y de agradecer) tu aportación, ya que en determinados casos ob_start() puede darnos más de un quebradero de cabeza.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar