In PHP possiamo gestire i quiz antispam.
La soluzione è la seguente:
function get_captcha() {
global $db;
$query = 'SELECT * FROM captchas ORDER BY rand() LIMIT 1';
return $db->query($query);
}
function validate_captcha($question, $answer) {
global $db;
$answ = $db->escape(trim($answer));
$query = "SELECT * FROM captchas WHERE question = '$question' AND answer = '$answ'";
$db->query($query);
return ($db->num_results == 1);
}
Abbiamo una tabella MySQL di domande e risposte univoche. Per generare un CAPTCHA selezioniamo un valore casuale dalla tabella. Quindi per validare la risposta verifichiamo che esista una corrispondenza nella tabella per la risposta fornita.