Sinun varmaan kannattaa tehdä taulukko numeroista. Vaikka kymmenestä ensimmäisestä. Tekstinä olevia numeroita on botin hankalampi lukea.
Code: Select all
$numerot[0] = "nolla";
$numerot[1] = "yksi";
...
Sitten arvot muutaman yhteenlaskettavan (tai vaikka vähennettävän) luvun.
Tulostat jonnekkin kivaan paikkaan sitten laskutoimituksen.
Code: Select all
echo "Paljonko on " . $numerot[$arvottuluku1] . " plus ". $numerot[$arvottuluku2] . "?";
Sitten lasket sen vastauksen ja tallennat sen $_SESSION muuttujaan (muista kutsua session_start():ia).
Sitten sillä sivulla missä käsitellään tuo vieraskirjaan kirjoitettu juttu, niin tarkistetaan $_SESSION muuttujasta, on käyttäjän syöttämä arvo sama kuin siellä oleva. Mikäli on niin jatketaan eteenpäin ja mikäli se on eri niin valitettaan käyttäjälle.
Koska spämmäävät todennäköisesti enemmän ihmiset kuin botit niin ei tuo paljon sitä estä. Sinun kannattaa siis laittaa $_SESSION muuttujaan myös tieto siitä että henkilö on jo kirjoittanut vieraskirjaan.
Ei tuo ole lähellekkään täysin varma mutta näin pikaisesti ajateltuna vaikuttaisi toimivalta. Minulla tosin on jo muutama vuosi aikaa edellisestä php kokeilusta.