Salve,
ho un sito in cui gli utenti (registrati e non) possono votare degli articoli.
Vorrei che ogni utente potesse esprimere un solo voto per articolo, per evitare voti fasulli ripetuti.
Leggendo il forum ho capito che la soluzione è l'uso dei cookie (scartando il controllo dell'indirizzo ip).
Ho implementato questo algoritmoNei miei intendi l'algoritmo dovrebbe verificare se il cookie esiste, in caso contrario l'utente può votare. Se il cookie è presente controlla se al suo interno è già presente il codice ($id) dell'articolo che si sta votando. Se non è presente si può votare.codice:$voto_concesso=false; $testo_cookie="_"; $nome_cookie="voti"; if (isset($_COOKIE[$nome_cookie])) { $testo_cookie=$HTTP_COOKIE_VARS[$nome_cookie]; $gia_votato=false; if (strpos($testo_cookie,"_".$id."_")===false) $voto_concesso=true; } else $voto_concesso=true; } if ($voto_concesso) { $testo_cookie.="_".$id."_"; setcookie($nome_cookie,$testo_cookie,time()+604800); // registrazione voto nel database }
A me sembra corretto, eppure vedo che molti utenti riescono a votare più volte in pochi secondi la stessa opera. Mi pare strano che siano così in tanti a cancellare i cookie, quindi non vorrei dipendesse da qualche mancanza del mio algoritmo.
Mi sapete dire se c'è qualcosa che non va?
Grazie mille