Возникла небольшая проблема. Ниже приведен скрипт, который обрабатывает клик на кнопку лайк и затем создает объект в localStorage + делает кнопку лайк неактивной. По идее, при следующем клике скрипт должен проверять наличие объекта 'like' в localStorage и если он там есть, оставлять кнопку неактивной, но как всегда что-то пошло не так и при каждом обновлении старницы кнопку лайк все еще можно кликать.
$('.likes-button').click(function () {
if (localStorage.getItem("like" === true)) {
$('.likes-button').attr("disabled", true).css({
'cursor': 'default',
'color': 'gray'
});
}
var bkid;
bkid = $(this).attr("data-ansid");
$.get('/add_like/', {book_id: bkid}, function (data) {
$('#like_count').html(data);
$('.likes-button').attr("disabled", true).css({
'cursor': 'default',
'color': 'gray'
});
var store = localStorage.setItem("like", "already");
});
});
Без авторизации пользователя Вы не сделаете 100% защиту от накрутки. Есть некоторые вещи, которые могут просто улучшить защиту, К примеру js библиотека fingerprint, настроив ее - у каждого посетителя так сказать будет свой идентификатор в конкретном браузере. Еще есть supercookie, правда они теряют свою силу после ухода flash в прошлое.
Но это все защита от дурака )
Ваш обработчик срабатывает только после нажатия на кнопку. Если загрузить страницу ещё раз, то он не срабатывает. Сделайте проверку при загрузки страницы и выключайте кнопку в ней. Но это не спасёт от накруток.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости