Хочу реализовать систему поощрений на сайте. Суть заключается в том, что пользователь в личном кабинете видет кнопку, при нажатии на которую, он получит баллы, которые запишутся в бд. После этого кнопка становится не активной и под ней появляется таймер на 24 часа. По прошествии таймера кнопка опять становится активной и можно опять получить баллы.
Такая функция реализована на сайте seosprint.
Была идея реализовать это через куки, но пользователь может зайти с разных браузеров или просто очистить куки.
Если есть БД пользователей, создайте там флаг и время нажатия, затем напишите функцию, которая будет анализировать значение флага и время и на основании результатов выводить или прятать кнопку.
А если в бд записать не время нажатия, а время нажатия + 24 часа и проверкой будет "если нынешнее время < времени записанной в бд то спрятать кнопку, иначе показать кнопку"? Так пойдет?
wixtransfer, Я далеко не специалист в этих вопросах, всего лишь любитель. В плане быстроты работы кода я без понятия что быстрее и лучше. Вы спокойно можете записать время +24 и делать проверку, можете записать время последнего нажатия, и сравнивать его в скрипте с настоящим временем -24. Смотрите на объем кода и его эффективность
В принципе флаг для этого даже не нужен - достаточно иметь в БД NULLABLE поле, хранящее время нажатия. А дальше - просто проверяем на NULL значение этого поля и сравниваем значение этого поля с текущими датой и временем, если его значение не NULL.