Насколько я могу судить, единственное, что мешает пользователю повторно голосовать, - это ваша переменная set
.
if (set==false)
{
...
set=true;
Просто избавьтесь от предложения if
, и оно запустится, даже если set==true
За комментарий Томалака, я забыл упомянуть, что:
Если бэкэнд не поддерживает это,
тогда он будет вставлять новый голос, а
чем изменение существующего. А также
так как, кажется, нет
идентификация пользователя, которая появится
быть таковым
Если у вас нет какой-либо аутентификации пользователя, по крайней мере, используйте куки или что-то еще, чтобы отследить, какой пользователь является тем, чтобы голосование было отредактировано, а не создано новым.
Что касается настройки файлов cookie, я бы рекомендовал устанавливать файлы cookie через Javascript, как только пользователь проголосует в первый раз. С другой стороны, все, что вы используете для серверной технологии, должно проверять, существует ли уже файл cookie, и, если он есть, отредактировать запись ранжирования вместо создания новой.
Вот хороший ресурс о файлах cookie в JS: http://www.quirksmode.org/js/cookies.html