Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/07/2006, 11:29
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Deberías indicar una porción de código donde uses Header() y de que tipo .. por qué header() no es más que una función de PHP para permitirte enviar cabeceras HTTP al cliente .. (tu navegador en tu caso) .. La cabecera que envias es "Location" (pertenece al protocolo HTTP). Ahora .. el caso es que es tan común ver aplicado "header()" a "Location" que se "asume" que es esa la función de PHP para redireccionar .. pero no es así como acabo de explicar realmente.

La función header("Location: ...") sólo indica al "cliente" .. ya sea tu navegador, robot o la que pida tu script.php que "cambie" la página que está viendo por otra .. nada más. De hecho como cabecera que es, por su filosofía se envia y procesa por tus navegadores -antes- de cualquier otro HTML que pudieras haber enviado .. por ende un "robot" de un buscador no va cachear nada de "HTML" por qué no lo enviastes .. antes le digistes "cambia el URL que estás viendo por otro ...".

Insisto que sería bueno ver en que contexto usas ese tipo de redirecciones ...

Si te fijas .. el objetivo de redireccionar así es "terminar la ejecución del script" PHP en ese punto y cambiar a otro .. Por ende se debería usar:

exit;

Tras un header("Location: ..."); .. así fuerzas terminar la ejecución de tu script y en consecuencia que PHP entregue el buffer de salida de PHP al cliente .. en tu caso que se "Mande" a ejecutar esa función e instrucción HTTP .. sino, .. el código PHP sigue su flujo hasta el final (con un tiempo de ejecución que no corresponde) o teniendo que ir siguiendo el flujo de "if()... else ..." que pudieras tener hasta el fin del script ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.