Как обнаружить пользователей, устанавливающих "не отслеживать"

Я просмотрел некоторые статьи Google и некоторые разделы для разработчиков Firefox и обнаружил, что есть опция, позволяющая не позволять некоторым сайтам отслеживать вашу информацию.

Я посмотрел на это и сделал несколько поисков в Google для разработчиков, но мне не удалось найти какую-либо информацию о том, как определить, установил ли пользователь это в своем браузере.

Это отправлено в POST запрос или в любой тип запроса? Это входит в пользовательский агент? Я просто хотел знать, как управлять этим, а не хранить их ips для входа в качестве примера.

3 ответа

Решение

Это отправлено как заголовок HTTP:

function dnt_enabled()
{
   return (isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] == 1);
}

if dnt_enabled() {
    // do stuff...
}

Или, если вы используете PHP 7:

function dnt_enabled(): bool
{
   return (bool)$_SERVER['HTTP_DNT'] ?? false;
}

Навигатор.doNotTrack

Если вы хотите использовать клиентский JavaScript для проверки наличия у пользователянабор заголовков запроса, вы можете использовать.

Это свойство возвращает значениеdntHTTP-заголовок (т. е. "1", "0", или же "unspecified").

Вы можете получить доступ к этому значению через PHP, отправив это значение POST через AJAX.

Примечание: на момент публикации navigator.doNotTrackдо сих пор считается экспериментальной технологией. Ожидайте, что поведение изменится в будущем, и будьте осторожны, прежде чем использовать его в своем приложении. См . раздел «Совместимость браузера» .

$do_not_track_requested = ! empty( $_SERVER[ 'HTTP_DNT' ] );

Все заголовки HTTP присутствуют в $_SERVER, с префиксом HTTP_.

https://www.php.net/manual/en/reserved.variables.server.php

Другие вопросы по тегам