Как ограничить количество нажатий кнопок в день в Javascript?

Я хочу ограничить количество нажатий на кнопку в день до 5 нажатий с помощью файлов cookie. Поэтому, когда пользователь нажимает 5 раз, кнопка больше не будет нажиматься. Мне удалось это сделать, но проблема в том, что когда я обновляю страницу, кнопка снова становится доступной. Итак, как применить файлы cookie, чтобы запомнить клики пользователя?

Мой код:

<input type = "text" class = "form-control" id = "prompt" placeholder = "Type anything">
<button id = "the-button" type = "submit">Send</button>
<script
  src = "https://code.jquery.com/jquery-3.6.0.min.js"
  integrity = "sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4 = "
  crossorigin = "anonymous">
</script>   
<script type = "text/javascript">                                         
localStorage.setItem("limit_click",5);
localStorage.setItem("count",1);
$("#the-button").on("click",function(){
    var limit = localStorage.getItem("limit_click");
    let count = parseInt(localStorage.getItem("count"));    
    if (count>=limit){
        alert('Your free limit counts has expired, please try again tomorrow or consider extending your plan.');
    }
    else{
        localStorage.setItem("count",parseInt(count)+1);
    }
}); 
</script>

Я заблокировал кнопку при нажатии 5 раз. Но когда страница обновляется, кнопка снова становится доступной.

Что я хочу сделать: Блокировать кнопку после 5 кликов, а потом даже при обновлении страницы кнопка все равно блокируется.

Вы понимаете, что я "пользователь" могу очистить куки

RiggsFolly 21.01.2023 16:33

Возможно, вы захотите взглянуть на снятие отпечатков пальцев браузера как на средство идентификации уникальных посетителей и использовать базу данных, а не файл cookie, который, как уже упоминалось, можно очистить или изменить иным образом.

Professor Abronsius 21.01.2023 16:35

Неправильный подход. Используйте хранилище на стороне сервера, например базу данных, и подсчитайте его там.

Markus Zeller 21.01.2023 16:35

Я просто хочу это как обходной путь. Я все еще учусь, так как это школьный проект.

CODE GENUIS 21.01.2023 16:35

Что ж, теперь вы узнали, что на самом деле это не решение этой проблемы, но вам предложили некоторое назидание люди, предложившие другие способы, которые могли бы работать.

RiggsFolly 21.01.2023 16:36

Я понимаю, что это не очень хороший подход, но это только для школьного проекта. Я был бы рад, если бы я получил помощь atm.

CODE GENUIS 21.01.2023 16:47
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
6
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш код не может проверить localStorage, прежде чем установить для него значение 1. При каждой загрузке страницы localStorage.setItem("count",1);. Это сбрасывает счетчик на 1, поэтому при каждой загрузке страницы localStorage обновляется. Это не имеет смысла, так что сделайте:

if (!localStorage.getItem("count")){
    localStorage.setItem("count",1);
}

Другие вопросы по теме