Foros del Web » Programando para Internet » PHP »

header("Location:"); y exit();

Estas en el tema de header("Location:"); y exit(); en el foro de PHP en Foros del Web. Hola a todos! Quisiera saber si cada vez que hago un header("Location:"), tambien se ejecuta un exit(); automaticamente, o algo asi como para saber si ...
  #1 (permalink)  
Antiguo 24/11/2005, 16:24
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
header("Location:"); y exit();

Hola a todos!

Quisiera saber si cada vez que hago un
header("Location:"), tambien se ejecuta un exit(); automaticamente, o algo asi como para saber si el script se deja de ejecutar, o si a pesar de que va a otra pagian el resto del script se seguira ejecutando.

Quisiera saber ya que tal vez tenga que forzar en algunos de mis scripts a q se cierren $links y cosas asi.

Muchas gracias.
  #2 (permalink)  
Antiguo 24/11/2005, 16:37
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años
Puntos: 17
Si ponés un exit a continuación no se ejecutará lo que siga ("exit -- Imprime un mensaje y termina el script actual"), justamente por eso se pone después de los header("location:");
  #3 (permalink)  
Antiguo 24/11/2005, 18:20
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 3 meses
Puntos: 2
Es extraño pq si pongo un exit() despues de un header(location); el programa no corre, muestra la pantalla en blanco como lo hace cuando hay errores de sintaxis... :S

Pero me sigue preocupando el no saber si "header(location)" hara un "break" en el programa o si igual mente se seguira ejecutando el codigo despues de este...
  #4 (permalink)  
Antiguo 25/11/2005, 05:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Header() simplemente envia cabeceras HTTP al cliente (navegador en tu caso).

Las "cabeceras" y en general todo lo que PHP va generando como "salida" hacia el buffer de salida se "entrega" al cliente (se envia) cuando el script termina su ejecución (si no es forzado por otros médios antes).

Por eso, como el objetivo de un "header()" de tipo "Location" es "redireccionar en ese punto del flujo del programa/script hacia otro" .. lo lógico es que uno termine también la ejecución del script en ese punto obligando a PHP a que envie todo lo que tenga en el buffer de salida al cliente y en consecuencia envie la cabecera HTTP de "Location" que le informa al cliente que "cambie la página a otro URL dado".

Por otro lado, los links de conexión a Base de datos (no persistentes), variables (no de sesión) y todo proceso en general de un script en ejecución "muere" al terminar la ejecución del mismo (que llegue al final del script o se fuerce su termino con un exit).

Cita:
Es extraño pq si pongo un exit() despues de un header(location); el programa no corre, muestra la pantalla en blanco como lo hace cuando hay errores de sintaxis... :S
Deberias indicar el código que usas .. tambien revisar tu configuración de PHP sobre los mensajes de error que muestras: (php.ini) directivas tipo: error_reporting .. display_errors .. etc. Es probable que puedas tener un mensaje de error que se esté originando pero no lo ves en "pantalla" (tal vez en los log's de erroes de PHP los veas si los generas ..)


Un saludo,
  #5 (permalink)  
Antiguo 09/12/2005, 12:33
 
Fecha de Ingreso: diciembre-2005
Mensajes: 46
Antigüedad: 18 años, 3 meses
Puntos: 0
Hola si pudierais ponerme el codigo completo del header porque llevo intentandolo y no lo consigo sacar, me serviria de mucha ayuda gracias.
  #6 (permalink)  
Antiguo 09/12/2005, 13:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
No sé a qué te refires .. pero sería:
Código PHP:
header("Location: pagina.tal");
exit; 
www.php.net/header

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 19:15.