- Home
- Categorie
- Coding e Sistemistica
- Coding
- Form email con "ajax fancy captcha"
-
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
-
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]
-
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?
-
Il tuo codice che deve eseguirsi se il captcha è valido, va dopo la riga "YOUR CODE GOES HERE!", dopo echo "Passed!".
-
Ok grazie mille, ho risolto il mio problema, tutto funziona perfettamente