Zrobiłem skrypt do oceniania i po oddaniu głosu zapamiętuje to w cookies:

setcookie('vote_'.$id,'tak',time()+60*60*24*30);

Później sprawdza czy dany jest cookies z danym $id i jeśli tak to pisze że 'Oddałeś już głos':

if (isset($_COOKIE['vote'.$id])) echo 'Oddałeś już głos';

Wszystko działa mi dobrze poza tym, że gdy oddam trochę głosów to później cookies jakby znikał i mogę znowu głosować, a nie powinno tak być ponieważ oddałem już głos (sprawdzałem na IE). Czy jest jakiś limit na ilość utworzonych cookies'ów ? Bo z tego co zauważyłem, to po utworzeniu kilkudziesięciu cookies'ów starsze znikają (po 1-3 dniach)

hmm może lepszym rozwiązaniem byłoby zrobienie tego tak, że do jednego cookies'a byłby dopisywany id, np.

setcookie('vote',$_COOKIE['vote'].'|'.$id,time()+60*60*24*30);