Результат от $ _SERVER , когда заголовок реферера не отправляется на сервер

Когда браузер отправляет информацию заголовка на сервер, $_SERVER['HTTP_REFERER'] должен указывать нам предыдущий URL-адрес страницы?

Что возвращает из $_SERVER['HTTP_REFERER'] , когда информация заголовка не отправляется на сервер? пустая строка? ложный? ноль? или… ?

Если заголовок запроса рефератора HTTP не отправлен, значит, $_SERVER['HTTP_REFERER'] , вероятно, не установлен, хотя это может быть пустая строка. Будет ли он установлен или нет, в этом случае может зависеть от сервера.

Как и во всех заголовках HTTP-запроса, проверьте его наличие при чтении:

 $httpReferer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; 

$_SERVER['HTTP_REFERER'] не является действительно надежным, потому что конкретная настройка в браузере пользователя может его сломать. Но да, он должен содержать предыдущий URL, и он будет возвращать пустую строку или NULL, если заголовки не отправлены, в зависимости от конфигурации сервера.

$ _SERVER – это глобальная переменная массива, а значение referrer – это элемент массива с ключом HTTP_REFERER. Если ни один сервер заголовка не отправляется браузером, то элемент просто отсутствует в массиве. Вы можете проверить, имеет ли массив элемент с array_key_exists ; в этом случае:

array_key_exists('HTTP_REFERER', $_SERVER)

когда он не установлен, значение будет либо нулевым, либо неопределенным.

альтернативой будет использование

 $_SERVER['REDIRECT_URL']