PHP: gestione corretta degli header HTTP

In PHP gli header HTTP andrebbero sempre impostati seguendo una procedura specifica.

È sempre consigliato verificare che gli header non siano stati già impostati per non incorrere in un errore:


if (!headers_sent()) {
    header('Location: https://www.site.tld/');
    exit;
}

La funzione headers_sent() può anche essere utilizzata a scopo di debugging leggendo i suoi due parametri opzionali, ossia il nome del file ed il numero di riga in cui gli header sono già stati impostati. Tuttavia, come ricorda la documentazione:

Note that $filename and $linenum are passed in for later use. Do not assign them values beforehand.


if (!headers_sent($filename, $linenum)) {
    header('Location: https://www.site.tld/');
    exit;
} else {
    die("Headers already sent in $filename on line $linenum");
}

Torna su