Foros del Web » Programando para Internet » PHP »

3 consultas en una, Header y Exit

Estas en el tema de 3 consultas en una, Header y Exit en el foro de PHP en Foros del Web. Hola a todos; Bueno mi consulta: 1.- Existe alguna razon o alternativa por la cual el HEADER no funcione o ejecute. 2.- El header debe ...
  #1 (permalink)  
Antiguo 14/03/2005, 14:25
Avatar de ciopatrick  
Fecha de Ingreso: diciembre-2003
Mensajes: 189
Antigüedad: 20 años, 4 meses
Puntos: 0
Pregunta 3 consultas en una, Header y Exit

Hola a todos;

Bueno mi consulta:


1.- Existe alguna razon o alternativa por la cual el HEADER no funcione o ejecute.
2.- El header debe llevar por obligacion un exit en la linea siguiente.
3.- Consulta mas que nada para salir de una duda el exit se escribe exit; o exit();


Gracias
Gracias por sus respuestas.
  #2 (permalink)  
Antiguo 14/03/2005, 14:27
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
1- Si, haber mandado cualquier contenido a las cabeceras anteriormente, o pasarle como paramentro algo incorrecto.
2- Es lo recomendable, depende mucho de que tengas despues de este en la liena de ejecucion.
3- exit;
__________________
Mi punto de partida es Que Bueno Lo Nuevo

Última edición por nicolaspar; 14/03/2005 a las 14:28
  #3 (permalink)  
Antiguo 14/03/2005, 14:46
Avatar de ciopatrick  
Fecha de Ingreso: diciembre-2003
Mensajes: 189
Antigüedad: 20 años, 4 meses
Puntos: 0
gracias por tu respuesta;:

Bueno referente al cierre con el exit; mi consulta es porque si tengo un cierre de tabla al ultimo de la funcion debajo del header y el exit este no lo leera.
o php igual llega y lee toda la funcion hasta el termino de este?

include "Conex_04.php";
$Consulta = "Select *.......'";
$Resultado = mssql_query($Consulta,$Conexion_04);
$row = mssql_fetch_array($Resultado);
if (mssql_num_rows($Resultado) > 0){
Header ("Location: ..............");
}else{
LimTablaV($DatoCaja);
Header ("Location: ..............");
}
include "Conex_Cerrar_04.php";

Gracias
  #4 (permalink)  
Antiguo 14/03/2005, 14:48
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Pero la idea de header Location es sacarte de la pagina...para que queres mostrale el footer si lo vas a sacar?
Si queres permanecerlo un momento en la pagina, usa js, o un meta tag.
Y respondiendo a tu pregunta, si, el php sigue la ejecucion.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 15/03/2005, 10:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El objetivo del ejemplo que planteeas es ese mismo .. si tal condición .. redireccionas "cambias" a otra página .. si tal otra condición .. se redirecciona a otra página/Script.

Todo "HTML" en ese script no tiene sentido .. las cabeceras HTTP enviadas por header() como por ejemplo lo de "Location" se ejecuta antes que cualquier otro HTML/javacript pueda llegar al cliente (navegador) y este sea interpretado. Por ende es ahí donde dá problemas si das otra "salida" al navegador antes de usar header() .. Debes enfocar ese tipo de scripts PHP como de "proceso" .. es decir .. sin nada de salida .. pues ya lo determina ese redireccionmiento que haces según la condición se cumpla o no.

Si tu haces un header() (de Location) y no terminas el script (su ejecución) con exit .. el script continua hasta el final, al terminar este .. el "buffer" de salida se entrega al cliente y con el viajan tus cabeceras y demás cosas que envies (cookeis, etc ...).

La idea principal de usar "header("Location: ")" suele ser la de "terminar la ejecución de ese script en ese punto y cambiar a otro ..." por ende suele ser recomendable usar exit; .. un ejemplo:

Código PHP:
<?
if ($nose=="valor"){
  
header("Location: nose.tal");
  exit;
}

<
html>
<
head>
</
head>
<
body>
bla bla
</body>
</
html>
Según el ejemplo .. si se cumple mi condición (PHP) .. "salgo" del script hacia otro (lo redirecciono) y termino la ejecución del script en ese punto .. si no lo hiciera .. el código siguiente se ejecutaría.

Si no se cumple la condición .. puedo seguir dando "salida" al cliente en ese mismo script .. Útil este tipo de construcciones para sistemas de "validación" (autentificación ..etc) donde si tal cosa no sucede .. hay que "salir" del script sino, se continúa normalmente.

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 08:43.