ciao
senza andare a prendere uno script già fatto (c'è ne sono tanti lo so ) volevo provare a creare da 0 un controllo antispam.

Ho un form, e prima di accettare i dati, voglio fare un controllo;
il controllo lo faccio con una immagine con all'interno una sequenza di lettere e numeri random (che poi registro in sessione) che verifico nel form. il concetto in se è semplice, ma è giusto?

ora vi posto i due pezzetti di codici semplici semplici, vorrei avere dei vostri pareri se:

-il concetto è appunto esatto?
-nell generare l'immagine e salvare il codice del controllo sbaglio qualcosa?
-c'è qualche sistema migliore? se si, me lo consigliate?
-qualsiasi critica, suggerimento è ben accetto

img.php
Codice PHP:
<?php 
session_start
();
header("Content-type: image/png"); 

##genero il codice##
$lung_codice 5;
for (
$x=1$x<=$lung_codice$x++) {
if (
$x 2) {
$codice $codice chr(rand(97,122));
} else {
$codice $codice rand(0,9);
}
}
$_SESSION['captcha_c'] = $codice;
####

$im = @imagecreate(20050) or die("Cannot Initialize new GD image stream"); 
$background_color imagecolorallocate($im000); 
$text_color imagecolorallocate($im2331491); 
imagestring($im57015$_SESSION['captcha_c'], $text_color); 
imagepng($im); 
imagedestroy($im); 
?>
form.php
Codice PHP:
<?php
session_start
();

if (
$_POST[captcha] == FALSE) {

echo 
"<form method=\"post\">
    <img src=\"img.php\" alt=\"codice di sicurezza\" /> 
    


    <input type=\"hidden\" name=\"captcha\" value=\"ok\" />
    <input type=\"text\" id=\"codice_sicurezza\" name=\"codice_sicurezza\" />
    <input type=\"submit\" value=\"verifica\" />
</form>"
;
} else {
//controllo che il codice immesso sia uguale a quello dell'immagine (salvato in sessione)
if ($_POST[codice_sicurezza] == $_SESSION['captcha_c']) {
echo 
"codice esatto";
}else {
echo 
"codice errato";
}
}
?>