How does the PHP version and server API affect the functionality of $_SERVER['HTTP_REFERER'] when trying to retrieve the referring URL?

The PHP version and server API can affect the functionality of $_SERVER['HTTP_REFERER'] when trying to retrieve the referring URL because some server configurations may not populate this variable reliably. To ensure consistent retrieval of the referring URL, you can check if the variable is set and fallback to an alternative method, such as using a custom function to parse the referer from the headers.

$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : get_referer_from_headers();

function get_referer_from_headers() {
    $headers = getallheaders();
    return isset($headers['Referer']) ? $headers['Referer'] : '';
}