PHP: gestione corretta degli header HTTP

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

PHP di Gabriele Romanato

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");
}