JavaScript

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

Вот код, который отвечает за голосование и показывает звезды рейтинга.
Но пользователь может голосовать (кликать) сколько угодно. Как ограничить клик до 1 раза?
jQuery(document).ready(function($)
{

$(document).on('mouseover', '.ratings_stars', function()
{
$(this).prevAll().andSelf().addClass('ratings_over');
$(this).nextAll().removeClass('ratings_vote');
$(this).nextAll().removeClass('ratings_over');

})

$(document).on('mouseout', '.ratings_stars', function()
{

$(this).nextAll().removeClass('ratings_over');

})

$(document).on('click', '.ratings_stars', function()
{

var starvalue = jQuery(this).attr("starvalue");
var data_id = jQuery(this).parent().attr("data_id");

jQuery(".star-rating"+data_id+" .total_votes").addClass("loading");
jQuery(".star-rating"+data_id+" .total_votes").html("");

jQuery.ajax(
{
type: 'POST',
url:star_rating_ajax.star_rating_ajaxurl,
data: {"action": "star_rating_record", "data_id":data_id , "starvalue":starvalue},
success: function(data)
{
jQuery(".star-rating"+data_id+" .total_votes").html(data);
jQuery(".star-rating"+data_id+" .total_votes").removeClass("loading");

}
});

});

});
Если без регистрации, то никак. Так как пользователь запросто может потереть куки или сменить айпи.
Малик Дускалиев
Малик Дускалиев
51 010
Лучший ответ
Без регистрации -это сделать невозможно!
SE
Sarvar Ergashev
93 193
Если без регистрации, то никак. Так как пользователь запросто может потереть куки или сменить айпи.
Ширик ******
Ширик ******
55 010
Валерий Пашкевич Без регистрации. Но может как то на время отложить выполнение второго голосования?
Валерий Пашкевич Мне не надо сверхзащищенный код. Просто через куки!!! Вы можете подправить код и дописать проверку куки?
Baglan Saimasaev А что если голосование сделать платным?)))
"Если без регистрации, то никак. Так как пользователь запросто может потереть куки или сменить айпи. "

Барашков стадо мееее....
/антоха /
/антоха /
74 660
Jaloladdin Saidnazarov а что же ты, барашек, за мной повторяешь?)
Валерий Пашкевич все можно сделать, просто не хватает у вас "знаний", я нашел много примеров для реализации и огромное количество плагинов! Бесят такие как вы!
Валерий Пашкевич Вот код, в котором пользователь кликает

$(document).on('click', '.ratings_stars', function()
{

var starvalue = jQuery(this).attr("starvalue");
var data_id = jQuery(this).parent().attr("data_id");

jQuery(".star-rating"+data_id+" .total_votes").addClass("loading");
jQuery(".star-rating"+data_id+" .total_votes").html("");

jQuery.ajax(
{
type: 'POST',
url:star_rating_ajax.star_rating_ajaxurl,
data: {"action": "star_rating_record", "data_id":data_id , "starvalue":starvalue},
success: function(data)
{
jQuery(".star-rating"+data_id+" .total_votes").html(data);
jQuery(".star-rating"+data_id+" .total_votes").removeClass("loading");

}
});

});

Как запретить повтороное выполнение функции? Через куки или ip?
"Если без регистрации, то никак. Так как пользователь запросто может потереть куки или сменить айпи. "

Стадо ))
Е*
Евгений *****
4 566
да никак
Куки и ай-пи - это только для одноразового пользователя, который зашел, проголосовал и ушел с сайта - едва ли он будет сидеть и набивать статистику, просто по-дурацки кликая на одну и ту же оценку - быстрее сайт покинет.
А если говорим про такие вещи, как "лайк" на сайте с постоянными посетителями - тут явно без идентификации пользователя по его id не обойтись.
Пример. Проголосовал за материал другого пользователя. Спустя неделю, на него же наткнулся - и очень правильно сейчас на многих сайтах делают, меняя при каждом последующем нажатии "лайк" на "дислайк" - сразу голосующий видит, что уже голосовал.
Так что для Действительно полезной статистики - всё-таки следует и собирать её от зарегистрированных уникальных пользователей. Создание базы клиентов и их взаимодействие с сайтом - уже совершенно иная задача, совершенно иной проект.
Валерий Пашкевич ребята.. не изобретайте велосипед. Все уже работает.. для движков написаны модули. Не знаете сути, не пишите ответы.
Кайрат Жусупов Денис все правильно сказал, если вы не пишете код под банковскую сферу или что-либо подобное, то достаточно обычной куки и привязки к IP. это в 99% защитит вас от школохакеров)
Если без регистрации, то никак. Так как пользователь запросто может потереть куки или сменить айпи.
С(
Серёга (X_X)
1 514
Если без регистрации, то никак. Так как пользователь запросто может потереть куки или сменить айпи.
Валерий Пашкевич как это нельзя??? я вам могу скинуть миллион примеров, где можно!!! Я просто в коде не разбираюсь!
Можно сделать что бы он проголосовал, ему кажется что его голос засчитан, а на самом деле нет.
Никак
WJ
Walid Jarar
307
Никак
Нельзя это сделать
Никак
некак