У меня есть таймер на сайте, который пользователь сможет нажимать только на каждые * секунды/минуты/часы. Каждый пользователь имеет значение таймера в таблице пользователей, где значения записываются и считываются. Значение в базе данных - это количество секунд, которое пользователь должен будет ждать.
Я выяснил, как сделать отсчет таймера от правильного значения в базе данных sql, но мне еще предстоит выяснить, как сделать его безопасным.
Что было бы самым эффективным способом обнаружения при нажатии на ранний?
Hm, когда пользователь нажимает, вы записываете время (время сервера), вычитаете значение из db и смотрите, меньше ли это установленного значения.
Возможно, вам следует предоставить более подробную информацию...
Вы можете извлечь всю запись и сравнить ее с помощью PHP или выполнить команду SQL, проверяющую ее. Предполагая, что MySQL:
SELECT IF(COUNT(id), 1, 0) AS allowed FROM some_table
WHERE NOW() > DATE_ADD(timestampCol, INTERVAL 5 MINUTE) AND user_id = :userid;
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add
Не уверен, что это имеет отношение к "безопасности", как это обычно упоминается. Если ваш вопрос: "Как я могу защитить приложение", вопрос слишком широк для быстрого ответа. Если ваш вопрос - "как это сделать, убедитесь, что это работает", то это именно так.
Я с Playcat на этом.
В первый клик сохранить время в базе данных. При втором щелчке выберите первый клик; Убедитесь, что теперь - firstclick < userTimervalue
IF, поэтому пользователь не подошел достаточно долго return false ELSE возвращает true и обновляет firstclick до текущего времени.
Единственное, что я хотел бы добавить, это добавить javascript clientide для имитации таймера, который может уменьшить проверку базы данных.