Проверка на определенные куки

139
15 декабря 2016, 15:43

Всем привет. Есть система опросов, там может быть несколько разных вопросов. Как сделать так, чтобы я мог голосовать в разных опросах по 1 разу? С помощью setcookie.

Как можно проверить, голосовал ли я в этом опросе уже или нет?

Answer 1

Добрый день!

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

Если же вам все таки нужно решать ее именно через Cookie, То важно будет учесть корректность даты истечения, а так же то, что cookie не будут видны системе до полной перезагрузки страницы. Таким образом вашу задачу нужно решать так:

  1. нажали на голосование (оставили свой голос)
  2. Отправляем AJAX запрос на сервер (собственно он заносит в БД + выставляет Cookie)
  3. При успешном ответе AJAX запроса - отключаем кнопку голосования
  4. При дальнейших перезагрузках страницы проверяем наличие Cookie

Подробно аналогичную задачу разбирают здесь - Setting a cookie in an AJAX request

Но от себя подчеркну - Cookie не самый лучший способ для решения данной задачи.

Удачи!

READ ALSO
Выгружать данные при заполнении формы

Выгружать данные при заполнении формы

Этот код выгружает данные из бд по очереди при обновлении страницы, если данные закончились, он начинает сначалаКак переделать, чтобы пока...

190
Очень сложная выборка

Очень сложная выборка

В общем есть две таблицы: группы (id, название) и пользователи (id, id группы в которой состоит, рейтинг)Нужно найти количество групп, среднее арифметическое...

137
Занесение фото в MySQL

Занесение фото в MySQL

Подскажите, какие поля формы и какими функциями PHP можно загрузить имя фотографии в SQL базу, и скопировать эту фотографию в определённую папку...

117
Ошибка Notice: Use of undefined constant

Ошибка Notice: Use of undefined constant

В цикле два раза подряд выполняется следующая функция:

166