@ehoboli

Как сделать ограничения кликов по времени?

Есть у меня скрип опросов на php
Там есть две ссылки "Да" и "Нет".
На них можно дать без конечно,
Хочу что бы не спамили и сделать ограничение по времени,
Через js у меня не вышло, нажимаю на ссылку скрипт сбивается, так как страница при нажатии обновляется,
Есть решение что если только скрипт будет сохранять в cookies,
Но в этом я не шарю.

Остался один вариант- сделать ограничение через Базу данных,
Можете подсказать как , скинул бы я сюда код да только я сейчас с телефона, может пример посоветуете ?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 2
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Вы можете использовать любое хранилище - БД, куки, локальное хранилище, сессию.
Куки и localstorage в принципе можно поправить или вовсе очистить средствами браузера.
БД или php-сессия в этом смысле более надежна.

А сам принцип один, вне зависимости от того, какое хранилище вы будете использовать.
1. Клик
2. Проверить, сохранено ли время предыдущего клика
3.1. Если нет, то разрешить голосование. И сохранить время.
3.2. Если да, то проверить время.
3.2.1. Если прошло достаточно, разрешить голосование и сохранить время
3.2.2. Если нет, ничего не делать или сообщить пользователю, что он слишком увлекся.
Ответ написан
Комментировать
Zagir-vip
@Zagir-vip
Web dev, Game dev, app dev, Разработчик на Python!
Можно сделать через php или js. Рассмотрим сперва php:
<?php
$clicks = 0 // Получаем кол-во кликов
setcookie("clicks", clicks);
// Теперь нужно получить их
$clicks = $_COOKIE["clicks"];
echo $clicks;
?>

Cookies PHP

Теперь сделаем на JS:

let clicks = 0; // Получаем кол-во кликов
localStorage.setItem("clicks", clicks);
// Теперь получим их
const clicks = localStorage.getItem("clicks");
console.log(clicks);

Session JS
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
21 нояб. 2024, в 19:31
500 руб./за проект
21 нояб. 2024, в 19:28
200000 руб./за проект
21 нояб. 2024, в 19:09
5000 руб./за проект