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 algoritmo
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
}
Nei 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.
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