Чтение куки с PHP - PullRequest
       1

Чтение куки с PHP

2 голосов
/ 11 июля 2011

Я пытаюсь прочитать cookie, который я установил с помощью javascript, в частности, jQuery Cookie Plugin, а затем я читаю его с помощью PHP, чтобы записать его в базу данных.

По какой-то причине cookie создается при загрузке страницы, но не «существует», пока страница не обновится. Это означает, что я закачиваю пустые поля в таблицы базы данных.

Единственный способ, которым я могу думать об этом, - это AJAX-сценарий, который создает cookie. Или перейдите к скрипту, который возвращает мне данные в формате json.

Случай использования: я создаю простой класс аналитики для внутреннего проекта, и я хотел бы записать в базу данных разрешение пользователей, глубину цвета и весь этот джаз, который я использую screen.width и т.д., чтобы получить.

Ответы [ 2 ]

5 голосов
/ 11 июля 2011

Данные cookie отправляются на сервер (и пересылаются в интерпретатор PHP) , когда клиент выполняет запрос .Поэтому файл cookie, установленный JavaScript на клиенте после , когда страница была запрошена с сервера, не будет передан до следующего запроса на тот же сервер.

What you have

То, что вам нужно сделать, - это выполнить какой-то запрос (может быть выполнен через AJAX), где PHP-скрипт обрабатывает входящую информацию cookie и сохраняет ее в БД.

What you need

0 голосов
/ 11 июля 2011

@ Дженсграм прав. Возможны следующие два сценария:

  1. Пользователь запрашивает вашу страницу, и у него нет cookie. Вы отправляете ответ через PHP, но не видите куки на сервере. Ответ доставляется в браузер, и в DOMReady (или подобных событиях) вы устанавливаете cookie. Пользователь отправляет другой запрос (через взаимодействие с вашей страницей). Здесь у вас есть cookie на сервере.
  2. Пользователь уже имеет cookie (возвращается на ваш сайт) и отправляет запрос. Вы предоставляете ответ через PHP, но на этот раз cookie доступен с первого раза. В остальном тоже самое.

Два предложения:

  1. Чтобы предотвратить вставку нулевых (или пустых) значений в вашу БД, сначала проверьте, существует ли cookie или нет. Если нет, просто попробуйте установить его.
  2. Для реализации Analytics существуют предопределенные шаблоны. Например, вместо установки файла cookie вы можете включить свой скрипт на каждой странице, а при загрузке каждой страницы вы можете получить необходимую информацию и отправить асинхронный запрос ajax в ваш PHP-файл Analytics Collector. Нет необходимости в печенье :)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...