php - ¿Debo llamar a exit() después de llamar a Ubicación: encabezado? [duplicar]
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
Aceptado
Definitivamente deberías hacerlo. Configurar el encabezado por sí solo no finaliza la ejecución del script.
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 Location
del encabezado.