Ciao a tutti, sto cercando di implementare una semplice classe di captcha in uno script di commenti ma ho il seguente problema...
quando inserisco tutti i dati tipo nome email ecc.. la stessa mi manda alla pagina submitcomment.php dove mi informa che, se tutto è andato per il verso giusto, il commento è stato inserito in caso contrario mi visualizza gli errori...
Io ho provato ad runnare da sola la classe captcha e funziona, però vorrei che, quando invio il form completo(captcha+commenti), se c'è l'errore nel codice di verifica ferma tutto e non inserire niente e NON CONTINUARE LO SCRIPT, altrimenti prosegui e inserisci sto c***o di commento
non sto a postare tutto il codice sennò viene un casino
questa è la parte con CAPTCHA della pagina comment.php
Codice PHP:
$im = ImageCreate(100, 40); //crea l'immagine
$textcolor = ImageColorAllocate($im, 255,255, 255);
$backgroundcolor = ImageColorAllocate($im, 180, 0, 0);
uesta invece è la parte del form che invia i dati alla paginasrand((double)microtime()*1000000);$string = rand(1,10); //Genero il primo numero
$string2=rand(1,10); //Genero il secondo numero
$string3="$string + $string2";
$somma = $string3;
$risultato=$string+$string2;
ImageFill($im, 0, 0, $backgroundcolor);
ImageString($im, 4, 20, 5, $somma, $textcolor);
Imagejpeg($im, "../tutorials/comments/images/test.jpg");
ImageDestroy($im);
questa invece è la parte del form che invia i dati alla pagina submitcomment.php
Codice PHP:
<td><input type=\"submit\" name=\"post\" class=\"submit\" value=\"Submit Comment\" />
Inserisci il risultato della somma:
<input type=\"hidden\" value=\"$risultato\" name=\"risultato\">
<input type=\"text\" name=\"risposta\" size=\"20\">
<img src=\"../tutorials/comments/images/test.jpg\" border=\"0\">
</td>
questa è la pagina submitcomment.php
Codice PHP:
// connect to database
$dbh = mysql_connect ($db_hostname, $db_username, $db_pass) or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ($db_name);
//var
$tuturl = $_POST["tuturl"];
$tutid2 = $_POST["tutid2"];
$name = $_POST["name"];
$url = $_POST["url"];
$email = $_POST["email"];
$message = $_POST["message"];
$risposta=$_POST['risposta'];
$risultato=$_POST['risultato'];
//start
$sendcomment = mysql_query("INSERT INTO comments SET tutorialid='$tutid2', name='$name', url='$url', email='$email', comment='$message', date=now()");
if($sendcomment) {
echo "<h1>Il messaggio è stato inserito</h1>";
echo "Il tuo messaggio è stato inserito con successo. Attendi mentre verrai reindirizzato alla pagina precedente. Grazie!";}
else {echo "Si è verificato un'errore nell'inserimento del messaggio, riprova più tardi. ";}
e questa è la funzione che verifica che il codice è corretto
Codice PHP:
if($risposta==$risultato){echo "codice di verifica esatto. ";}
else {echo "codice di verifica errato."};