Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Controllo inserimento captcha

    Salve a tutti,
    vi seguo praticamente ogni volta che ho qualche piccolo dubbio sulla programmazione web in generale, solo che ora ho necessità di un aiuto diretto, non stò riuscendo a venire a capo di un problema che mi si è presentato nella realizzazione di un form mail.
    Ho trovato un semplicissimo form mail di questo tipo:
    codice:
    <form name="form1" id="form1" method="post" action="mail.php">
    <form name="modulo" method="post" action="mail.php">
    <div>La tua email 
    
    <input type="text" name="email" size="30"></div>
    <div>Oggetto 
    
    <input type="text" name="oggetto" size="30"></div>
    <div>Messaggio 
    
    <textarea name="testo" cols="40" rows="7"></textarea></div>
    <div>[img]captcha.php[/img]
    <input name="codice" type="text" id="codice" size="5" maxlength="5"/></div>
    <div><input type="submit" value="Invia email"> <input type="reset" value="Resetta campi"></div>
    </form>
    </form>
    Al quale ho associato una immagine captcha, per limitare quanto più possibile lo spam:
    Codice PHP:
    <?php 
    session_start
    (); 
    $random_txt md5(microtime()); 
    $random_txt substr($random_txt05); 
    $immagine imagecreatefrompng("captcha.png"); 
    $colore imagecolorallocate($immagine000); 
    imagestring($immagine1003515$random_txt$colore); 
    $_SESSION['CODICE'] = $random_txt
    header("Content-type: image/jpeg"); 
    imagejpeg($immagine); 
    ?>
    Per il controllo dei campi ho utilizzato questo:
    Codice PHP:
    <?php
    $ogg
    ="$_POST[oggetto]"
    $test="$_POST[testo]"
    $em="$_POST[email]"
    $dest="mailacuiinviare@gmail.com"
    if (
    $em==""){ 
    echo 
    "<center><font color='red'>[b]Non hai inserito la tua email[/b]</font></center> "
    }elseif (
    $ogg=="") { 
    echo 
    "<center><font color='red'>[b]Non hai specificato oggetto del messaggio[/b]</font></center>"
    }elseif (
    $test=="") { 
    echo 
    "<center><font color='red'>[b]Non hai inserito il testo[/b]</font></center>"
    }elseif (
    $dest=="") { 
    echo 
    "<center><font color='red'>[b]Non hai inserito il destinatario[/b]</font></center>"
    }elseif (
    $_POST['codice']=="") { 
    echo 
    "<center><font color='red'>[b]Non hai inserito il captcha[/b]</font></center>"
    }elseif (
    $_SESSION['CODICE']!=$_POST['codice']) { 
    echo 
    "<center><font color='red'>[b]Captcha errato![/b]</font></center>"
    }else {  
    mail("$dest","$ogg","$test","From: $em"); 
    echo 
    "<center><table border=0><td>[b]La tua email e' stata inviata con successo![/b]</td></table></center>"

    ?> 

     <center>[url="javascript:history.back()"]Torna indietro[/url]</p></center>
    Nel controllo mi si è presentato questo problema, se il captcha è sbagliato, mi stampa un messaggio di errore (e fin qui tutto perfetto), se il captcha è corretto, mi visualizza lo stesso errore... Praticamente cose se l'else fosse totalmente snobbato... Ammetto di non essere una cima, ma io in quell'ultimo codice postato non ci vedo errori sintattici, tanto è vero che hanno la stessa identica forma degli altri controlli che funzionano perfettamente...
    Se qualcuno riuscisse a darmi una mano, gli sarei molto grato
    Anche xkè nonostante tutto, stò per rinunciare al form e passare ad un semplice, quanto odioso, mailto....

  2. #2
    Risolto, bastava aggiungere all'interno del file di controllo un
    Codice PHP:
    session_start(); 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.