• User Attivo

    Form email con "ajax fancy captcha"

    salve,
    mentre lavoravo allo sviluppo di un sistema antispam per un form email, sono venuto a conoscenza di un sistema captcha molto carino e ben fatto . "ajax fancy captcha" :
    webdesignbeach.com/beachbar/ajax-fancy-captcha-jquery-plugin
    soltanto che ho difficoltà ad installarlo, non sono aggiungerlo al form.
    Per esempio se ho il seguente form :
    [HTML]
    <form action="elabora.php">
    <table border="0" cellspacing="0" cellpadding="5" align="center">
    <tr>
    <td><b> Nome e Cognome:</b></td>
    <td align="right"><input type=text name="realname"></td>
    </tr>
    <tr>
    <td><b>Email:</b></td>
    <td align="right"><input type=text name="email"></td>
    </tr>
    <tr>
    <td colspan="2"><b>Messaggio:</b></td>
    </tr>
    <tr>
    <td colspan="2"><textarea name="messaggio" cols="40" rows="5"></textarea></td>
    </tr>
    <tr>
    <td colspan="2" align="center"><input type="Submit" value="Invia"></td>
    </tr>
    </table>
    <input type=hidden name="required" value="email,realname,messaggio">
    </form>[/HTML]
    come faccio ad aggiungere il captcha sopra menzionato?
    Grazie in anticipo, Roberto


  • User Attivo

    Premesso che tu abbia caricato tutti i files sul tuo webserver come indicato nel readme dello script:

    [html]
    <form id="form_registrazione" action="elabora.php">
    <table border="0" cellspacing="0" cellpadding="5" align="center">
    <tr>
    <td><b> Nome e Cognome:</b></td>
    <td align="right"><input type=text name="realname"></td>
    </tr>
    <tr>
    <td><b>Email:</b></td>
    <td align="right"><input type=text name="email"></td>
    </tr>
    <tr>
    <td colspan="2"><b>Messaggio:</b></td>
    </tr>
    <tr>
    <td colspan="2"><textarea name="messaggio" cols="40" rows="5"></textarea></td>
    </tr>
    <tr>
    <td colspan="2"><div class="ajax-fc-container"></div></td>
    </tr>
    <tr>
    <td colspan="2" align="center"><input type="Submit" value="Invia"></td>
    </tr>
    </table>
    <input type="hidden" name="required" value="email,realname,messaggio">
    </form>
    <script type="text/javascript">
    $(function() {
    $(".ajax-fc-container").captcha({formId: "form_registrazione"});
    });
    </script>
    [/html]


  • User Attivo

    Ciao francesco, grazie per il tuo aiuto, sono riuscito a creare la pagina contente il modulo.Ho creato la pagina di elaborazione php :
    <?PHP

    $nome = $_POST['realname'];
    $email = $_POST['email'];
    $messaggio = nl2br($_POST['messaggio']);

    if ($nome == null)
    {
    print "Errore: è necessario compilare il campo 'Nome e cognome'";
    }
    else
    {
    if ($email == null)
    {
    print "Errore: è necessario compilare il campo 'Indirizzo e-mail'";
    }
    else
    {
    if ($messaggio == null)
    {
    print "Errore: è necessario compilare il campo 'Messaggio'";
    }
    else
    {

    $mail_to = "[email protected]";
    $mail_from = $email;
    $mail_subject = "Contatto dal web da parte di $nome";
    $mail_body = "<p><font color=#000000>$messaggio</font></p>";
    // Intestazioni HTML
    $mail_in_html = "MIME-Version: 1.0
    ";
    $mail_in_html .= "Content-type: text/html; charset=iso-8859-1
    ";
    $mail_in_html .= "From: <$mail_from>";
    // Processo di invio
    if (mail($mail_to, $mail_subject, $mail_body, $mail_in_html))
    {
    print "Email inviata con successo!";
    }
    else
    {
    print "Errore";
    }
    }
    }
    }
    ?>

    Adesso il problema è quando inserisco questo codice php nella pagina di elaborazione del captcha, ho semplicemente incollato il codice php ( sopra riportato) di seguito al codice php del captcha, ottenendo :

    <?php
    session_start();

    /* this compare captcha's number from POST and SESSION /
    if($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['captcha']) && $_POST['captcha'] == $_SESSION['captcha'])
    {
    echo "Passed!"; /
    YOUR CODE GOES HERE /
    unset($_SESSION['captcha']); /
    this line makes session free, we recommend you to keep it /
    }
    elseif($_SERVER['REQUEST_METHOD'] == "POST" && !isset($_POST['captcha']))
    {
    echo "Failed!";
    }
    /
    in case that form isn't submitted this file will create a random number and save it in session */
    else
    {
    $rand = rand(0,4);
    $_SESSION['captcha'] = $rand;
    echo $rand;
    }

    $nome = $_POST['realname'];

    $email = $_POST['email'];

    $messaggio = nl2br($_POST['messaggio']);

    if ($nome == null)
    {
    print "Errore: è necessario compilare il campo 'Nome e cognome'";
    }
    else
    {
    if ($email == null)
    {
    print "Errore: è necessario compilare il campo 'Indirizzo e-mail'";
    }
    else
    {
    if ($messaggio == null)
    {
    print "Errore: è necessario compilare il campo 'Messaggio'";
    }
    else
    {
    $mail_to = "[email protected]";
    $mail_from = $email;
    $mail_subject = "Contatto dal web da parte di $nome";
    $mail_body = "<p><font color=#000000>$messaggio</font></p>";
    // Intestazioni HTML
    $mail_in_html = "MIME-Version: 1.0
    ";
    $mail_in_html .= "Content-type: text/html; charset=iso-8859-1
    ";
    $mail_in_html .= "From: <$mail_from>";
    // Processo di invio
    if (mail($mail_to, $mail_subject, $mail_body, $mail_in_html))
    {
    print "Email inviata con successo!";
    }
    else
    {
    print "Errore";
    }
    }
    }
    }

    ?>

    ma il captcha non mi funziona... mi sapreste aiutare?


  • User Attivo

    Il tuo codice che deve eseguirsi se il captcha è valido, va dopo la riga "YOUR CODE GOES HERE!", dopo echo "Passed!".


  • User Attivo

    Ok grazie mille, ho risolto il mio problema, tutto funziona perfettamente