Как проверить, какие пользователи принимают куки? - PullRequest
0 голосов
/ 14 ноября 2011

Я хочу проверить, какие пользователи принимают файлы cookie, чтобы получить приблизительный процент пользователей, которые принимают файлы cookie на одном из наших сайтов PHP.

Моя идея состоит в том, чтобы создать временный столбец acceptsCookies в таблице «Пользователи», чтобы отслеживать это (например, если пользователь принимает файлы cookie, их acceptsCookies будет установлен в «Y», в противном случае он будет установлен в "N").

Как я могу сделать это на странице single (установка тестового файла cookie, проверка, был ли он принят / установлен, обновление БД)?

Обновление: для ясности, это должно быть сделано на 100% в PHP.

Ответы [ 3 ]

4 голосов
/ 14 ноября 2011

Вы не можете сделать это за один шаг, поскольку куки должны быть сначала отправлены в браузер, и будут отправлены вам обратно только в следующем запросе. Так что, если у вас было что-то вроде:

<?php
    session_start();
    session_write_close(); // unlock session file so checkcookie.php below won't block.
    setcookie(...);
?>
<html>
<body>

<img src="checkcookie.php" width="0" height="0" />

вы можете сделать так, чтобы скрипт checkcookie.php обновил значение acceptptsCookie вашей сессии.

1 голос
/ 14 ноября 2011

С PHP вы не можете сделать это на одной странице. Другим вариантом было бы проверить в javascript, а затем отправить вызов ajax на другую страницу php:

<script>
   var tmpcookie = new Date();
   chkcookie = (tmpcookie.getTime() + '');
   document.cookie = "chkcookie=" + chkcookie + "; path=/";
    if (document.cookie.indexOf(chkcookie,0) < 0) {
      //AJAX CALL IN HERE SAYING NO COOKIES
      }
    else {
      //AJAX CALL IN HERE SAYING ACCEPTING COOKIES
    }
</SCRIPT>
0 голосов
/ 14 ноября 2011

PHP один не может определить, принял ли пользователь куки-файл или нет на одной странице.

PHP отправляет cookie в качестве заголовка, а затем читает заголовки, отправленные клиентом при запросе следующей страницы . PHP не может найти, был ли файл cookie принят или нет на той же странице, где он был доставлен. Это царство JavaScript.

...