Głosowanie odbywa się za pomocą kliknięcia plusa lub minusa, jeżeli jest się zalogowanym wszystko jest w porządku - gorzej jest wtedy gdy głosują goście.
Problem polega na tym, że będąc nie zalogowanym i klikając szybko kilka lub nawet kilkanaście razy na plus/minus system zapisuję wszystkie kliknięcia dając możliwość manipulowania głosami.
Funkcja realizująca głosowanie wygląda następująco:
Kod
function vote(obj, votelinkobj, aftervote, postID ,userID, baseURL) {
currentobj = obj;
voteobj = votelinkobj;
aftervotetext = aftervote;
var scripturl = baseURL+"/voteinterface.php?type=vote&tid=total&uid="+userID+"&pid="+postID+"&auth="+Math.random();
lg_AJAXrequest(scripturl);
}
currentobj = obj;
voteobj = votelinkobj;
aftervotetext = aftervote;
var scripturl = baseURL+"/voteinterface.php?type=vote&tid=total&uid="+userID+"&pid="+postID+"&auth="+Math.random();
lg_AJAXrequest(scripturl);
}
Znalazłem rozwiązanie polegające na zmianie funkcji na:
Kod
var clicked = false;
function vote(obj, votelinkobj, aftervote, postID ,userID, baseURL) {
if (clicked == false) {
currentobj = obj;
voteobj = votelinkobj;
aftervotetext = aftervote;
var scripturl = baseURL+"/voteinterface.php?type=vote&tid=total&uid="+userID+"&pid="+postID+"&auth="+Math.random();
lg_AJAXrequest(scripturl);
}
clicked = true;
}
function vote(obj, votelinkobj, aftervote, postID ,userID, baseURL) {
if (clicked == false) {
currentobj = obj;
voteobj = votelinkobj;
aftervotetext = aftervote;
var scripturl = baseURL+"/voteinterface.php?type=vote&tid=total&uid="+userID+"&pid="+postID+"&auth="+Math.random();
lg_AJAXrequest(scripturl);
}
clicked = true;
}
Jednak teraz, gdy gość zagłosuję na jakiś post musi odświeżyć stronę by móc zagłosować na inny.
Myślę, że najlepiej byłoby gdyby funkcją odliczała czas po kliknięciu na plus/minus i powiedzmy po kilku sekundach (gdy głos zapiszę się już w bazie) pozwalała na kolejne kliknięcie,
czy mógłby ktoś pomóc mi w napisaniu czegoś takiego?