Zainstalowałem na serwerze skrypt ankiety CodeCanyon - Smooth Ajax Poll v1.6, dostępny do pobrania TUTAJ.
Skypt rzekomo posiada podwójnę ochronę przed głosowaniem w określonym czasie:
Double security layer (IP and COOKIES) which Limits users to vote once per poll.
Niestety, kiedy wyłączyłem w przeglądarce ciasteczka mogłem głosować w nieskończoność, a więc ochrona IP nie działa

Popatrzyłem więc w plik pollfns.php:
Fragment pliku pollfns.php:
//checking if the ip has voted already ! if($_COOKIE["poll".$q_id]!='yes'){ //if didn't vote yet //see if the ip has voted on this poll $q="SELECT `ip`,`q_id`,`voteDate` from `votes` where ip='{$ip}' and q_id='{$q_id}' order by voteDate desc limit 1"; $res=query($connect,$q); if($res){ $nbr=$res->num_rows; if($nbr>0){ $d=retrieve_data($res); $vt=$voteTime+$expire*60; //when we can vote again time ( after expiration ) if($now>=$vt){ //if the current time is bigger than the expiration date than we can vote again $votedIp=false; }else{ $votedIp=true; } }else{$votedIp=false;} }else{ close($connect); exit; } $votedIp=false; // Disable the IP check }else if($_COOKIE["poll".$q_id]=='yes'){ $votedIp=true; }
Zwróciłem uwagę na linię 489 pliku:
$votedIp=false; // Disable the IP check
Zmieniłem wartość zmiennej na true, rekordy IP zaczęły zapisywać się do bazy danych, ale nadal po wyczyszczeniu cookies lub ich wyłączeniu mogę głosować w nieskończoność


Bardzo proszę o pomoc
