Можно ли проверить, есть ли у пользователя куки в php без перезагрузки страницы? - PullRequest
3 голосов
/ 11 января 2011

Например, код, подобный следующему, кажется, не работает, даже если cookie действительно установлен, пока я не обновлю страницу.

setcookie("cookies","1", time()+ 86400,"/" ); 
if (!isset($_COOKIE["cookies"])) {  
   $cookies = "foobar";
}

Я пытаюсь написать точный счетчик «уникального пользователя» на моем сайте, который работает на основе проверки, есть ли у пользователя набор файлов cookie на компьютере, если нет, он устанавливает +1 и устанавливает печенье. Проблема здесь в том, что пользователи без файлов cookie будут просто +1 при каждой загрузке страницы, поэтому, естественно, я хочу запускать этот код только для тех, у кого включены файлы cookie.

Приведенная выше проверка файлов cookie всегда будет возвращать $ cookies = "foobar" при загрузке первой страницы, независимо от того, включены или отключены файлы cookie пользователями. Таким образом, если пользователь только просматривает 1 страницу сайта, его посещение не будет зарегистрировано счетчиком.

Ответы [ 2 ]

1 голос
/ 11 января 2011

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

Одна вещь, которую вы можете сделать, это установить cookie на странице, а затем проверить его в сценарии изображения.

Есть и другие обходные пути.

0 голосов
/ 11 января 2011

Идея, которая приходит мне в голову, состоит в том, чтобы выполнить javascriptcheck после загрузки страницы, а затем использовать ajax для записи счетчика в базу данных или там, где вы хотите сохранить его. PHP находится на стороне сервера, в то время как cookie хранится на стороне клиента, поэтому проверка, как вы пытаетесь, будет проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...