php - ¿Debo llamar a exit() después de llamar a Ubicación: encabezado? [duplicar]

Resuelto q0987 asked hace 54 años • 6 respuestas

Después de llamar al encabezado de la función de redireccionamiento, ¿debería llamar a exit o no?

<?php // fileA
$urlFailToGoTo = '/formerror.php';

if (sth)
{
   header(sprintf("Location: %s", $urlFailToGoTo));
   exit(); //should I call exit() here? or return?
}

?>

Gracias

q0987 avatar Jan 01 '70 08:01 q0987
Aceptado

Definitivamente deberías hacerlo. Configurar el encabezado por sí solo no finaliza la ejecución del script.

rgroli avatar Aug 24 '2010 05:08 rgroli

Deberías, tal como explica @rgroli. Si no quiere molestarse con los paréntesis, también puede llamar header() IN exit() :

if(sth) exit(header("Location: http://example.com"));

El encabezado de ubicación en HTTP/1.1 siempre requiere una ruta absoluta; consulte la nota aquí .

Nota: Esto no es un truco, ya que el código de salida se usa solo si el parámetro es un número entero, mientras que header()produce void (sale con código=0, salida normal). Míralo como exit_header()una función como debería ser después Locationdel encabezado.

Jan Turoň avatar Aug 24 '2010 10:08 Jan Turoň