Buondì, qualche Anima Pia mi sa dire perché in questa form quando vado a scrivere il codice captcha correttamente mi rimanda il messaggio che invece è sbagliato?
Vi riporto sia il codice della form che del captcha in php.
Grazie in anticipo!
codice form HTML:
codice:
<form name="contatti" action="inviamail_captcha/inviamail.php" method="post" id="contatti">
<fieldset>
<label for="nome">Cognome e Nome:</label>
<input type="text" name="nome" id="nome" size="30" maxlength="145" required />
</p>
<label for="azienda">Azienda: </label>
<input type="text" name="azienda" id="azienda" size="30" maxlength="145" />
</p>
<div style="clear:both"></div>
<label for="telefono">Numero di Telefono: </label>
<input type="tel" name="telefono" id="telefono" size="30" maxlength="20" required />
</p>
<label for="fax">Numero di Fax: </label>
<input type="tel" name="fax" id="fax" size="30" maxlength="20" />
</p>
<div style="clear:both"></div>
<label for="email">E-mail: </label>
<input type="email" name="email" id="email" size="30" maxlength="145" required/>
</p>
<label for="città">Città: </label>
<input type="text" name="città" id="città" size="30" maxlength="50" />
</p>
<div style="clear:both"></div>
<label for="oggetto">Messaggio: </label>
<textarea name="oggetto" rows="5" id="oggetto"></textarea>
</fieldset>
</p>
</fieldset>
<fieldset>
<legend><span>Accetti le condizioni sulla privacy?</span></legend>
<label for="condizioni si"><span>si</span></label>
<input type="radio" name="trattamento_dati" value="accetto" class="radio" checked>
<label for="condizioni no"><span>no</span></label>
<input type="radio" name="trattamento_dati" value="non_accetto" class="radio" >
</fieldset>
<fieldset>
<legend><span>Antispam</span></legend>
[img]inviamail_captcha/securimage_show.php?[/img]
<div style="clear:both"></div>
CAPTCHA: cambia immagine</p>
<label for="captcha_code">Inserisci il codice:</label>
<input type="text" name="captcha_code" size="30" maxlength="6" id="captcha_code" /></p>
</fieldset>
<fieldset>
<legend><span>Invia la richiesta</span></legend>
<button type="submit" value="invia" id="invia">invia</button>
<button type="reset" name="reset" value="reset">reset</button>
</fieldset>
<p class="privacy"> Ai sensi della legge 675/96 sulla “tutela della privacy<span class="testo">”</span> compilando questo form autorizzo la società Eurotexts alla registrazione elettronica di questi dati che non verranno per qualunque motivo ceduti a terzi od utilizzati per usi non consentiti dalla presente legge.
In ogni momento e gratuitamente previa comunicazione a alla Eurotexts, sarà possibile ai sensi dell'art. 13, L.675/96, consultare, far modificare, cancellare i presenti dati.</p>
<input type="hidden" name="redirect_page" value="contatti.html" />
</form>
codice PHP
Codice PHP:
<?php session_start(); ?>
<?php
//include_once $_SERVER['DOCUMENT_ROOT'] . '/inviamail_captcha/securimage.php';
include_once 'securimage.php';
$securimage = new Securimage();
if ($securimage->check($_POST['captcha_code']) == false) {
// Pagina errore codice captcha errato
// PAGINA ERRORE NON PERSONALIZZABILE
// abilitare la riga sottostante se si desidera far apparire l'errore di codice errato su una pagina non personalizzabile e disabilitare la riga inferiore che contiene il codice della pagina personalizzabile
// die('<h2>E R R O R E</h2><h4>Il codice di controllo CAPTCHA inserito è errato.
[url="javascript:history.go(-1)"]Torna indietro e riprova[/url]</h4>');
// PAGINA ERRORE PERSONALIZZABILE
// abilitando la riga sottostante l'errore di codice errato apparirà su una pagina personalizzabile,in questo caso è necessario disabilitare la riga superiore che contiene il codice della pagina non personalizzabile
/*foreach($_POST as $nome_campo => $valore_sessione){
$_SESSION["ses_".$nome_campo] = $valore_sessione;
}*/
header("Location: ./errore_captcha.php?errore=1&redirect_page=".$_POST['redirect_page']);
exit;
}
?>
<?php
$email=$_POST['email'];
#######################################
#######################################
#######################################
# IMPOSTAZIONI DA CONFIGURARE #
#######################################
//(1) indirizzo email del destinatario del modulo
$destinatario = "livia@graf.roma.it";
//(2) indirizzo email del mittente, campo FROM
// non toccare se desiderate che l'indirizzo email inserito nel modulo sia
// riportato nel campo DA del messaggio che sarà ricevuto.
// Se invece desiderate un campo fisso annullare la prima riga e abilitare
// la seconda inserendo la dicitura desiderata (per annullare mettere //
// all'inizio della prima riga e per abilitare togliere // dalla seconda riga)
$nome_mittente = "$email";
// $nome_mittente = "Dal Modulo";
//(3) oggetto del messaggio
$oggetto_email = "Modulo Richiesta online";
//(4) se si vogliono rendere tutti i campi NON OBBLIGATORI impostare su "y".
// (valori possibili: "y" e "n")
$all_free = "n";
//(5) se avete messo "n" al punto (4) inserire tra virgolette, separati
// dalla virgola, i nomi dei campi da rendere OBBLIGATORI
// Esempio: $campi_req = array("nome","telefono","via");
$campi_req = array("nome","azienda","telefono","fax","email","città","oggetto");
//(6) controllo validità del campo email. (valori possibili: "y" e "n")
$obbligo_email = "y";
//(7) obbligare l'utente ad accettare le condizioni.
// (valori possibili: "y" e "n")
$accetta_condizioni = "y";
//(8) URL della pagina di ringraziamento
$pagina_grazie = "risposta.htm"; // "http://www.eurotexts.com/prova/inviamail_captcha/risposta.htm";
//(9) URL della pagina errore campi vuoti
$pagina_error_empty = "errore_campi_vuoti.php?redirect_page=".$_POST['redirect_page']; // "http://www.eurotexts.com/prova/inviamail_captcha/errore_campi_vuoti.htm";
//(10) URL della pagina errore email
$pagina_error_email = "errore_email.php?redirect_page=".$_POST['redirect_page']; // "http://www.eurotexts.com/prova/inviamail_captcha/errore_email.htm";
//(11) URL della pagina errore condizioni non accettate
$pagina_error_condizioni = "errore_condizioni.php?redirect_page=".$_POST['redirect_page']; // "http://www.eurotexts.com/prova/inviamail_captcha/errore_condizioni.htm";
//(12) URL della pagina errore invio non autorizzato (mancanza di referer)
$pagina_error_referer = "errore_referer.php?redirect_page=".$_POST['redirect_page']; // "http:/www.eurotexts.com/prova/inviamail_captcha/errore_referer.htm";
#######################################
# FINE IMPOSTAZIONI DA CON FIGURARE #
#######################################
//ora e data
$ora = date ("H:i:s");
$data = date ("d/m/Y");
//intestazione email che arriva al destinatario
$corpo = "
Modulo inviato il $data alle ore $ora
Riepilogo dati:\n\n";
//============== NON TOCCARE NULLA OLTRE QUESTA RIGA ==================
// tranne se volete abilitare l'invio ad altri indirizzi di posta, questi
// valori sono da abilitare nel settore ########### HEADER EMAIL ###########
//
########### CODICI ###########
//variabili per rendere lo script compatibile anche con la versione PHP 4.2 e maggiori
if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER, $HTTP_SERVER_VARS))){
$_POST = &$HTTP_POST_VARS;
}
//prende IP ADDRESS
if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
if ($_SERVER["HTTP_X_FORWARDED_FOR"] == "") {
$ipnumb = getenv("REMOTE_ADDR");
}else {
$ipnumb = getenv("HTTP_X_FORWARDED_FOR");
}
} else {
$ipnumb = getenv("REMOTE_ADDR");
}
###################################
//controllo referer
if(empty($_SERVER["HTTP_REFERER"])){
header ("Location: $pagina_error_referer");
exit();
}
########### CONTROLLO DEI CAMPI ###########
$control_campi = 0;
if($all_free != "y"){
foreach($_POST as $key => $valore){
if(in_array($key,$campi_req)){
if(trim($valore) == ""){
$control_campi++;
}
}
}
} else {
$control_campi = 0;
}
########### CONTROLLO EMAIL ###########
$control_email = 0;
if($obbligo_email == "y"){
if(isset($_POST['email'])){
if(!eregi("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){
$control_email++;
}
} else {
$control_email = 0;
}
}
########### CONTROLLO CONDIZIONI ###########
$control_condizioni = 0;
if($accetta_condizioni == "y"){
if(isset($_POST['trattamento_dati']) && $_POST['trattamento_dati'] == "accetto"){
$control_condizioni = 0;
} else {
$control_condizioni ++;
}
}
########### INVIO EMAIL ###########
if($control_campi == 0){
if($control_email == 0){
if($control_condizioni == 0){
foreach($_POST as $key => $valore){
$key = ucfirst(stripslashes(trim($key)));
$valore = stripslashes(trim($valore));
$key = str_replace("_"," ",$key);
if(trim($valore) == "") $valore = "Non compilato";
$corpo .= $key .": ". $valore ."\n\n";
}
$corpo .= "IP del mittente: $ipnumb"."\n";
$corpo .= "____________________________________________________________ \n\n
";
// ########### HEADER EMAIL ###########
$headmail.="From: $nome_mittente <$nome_mittente>\n";
$headmail.="Return-Path: $nome_mittente\n";
//
// #######################################
// abilitare Reply-To se si desidera inviare la posta ad un altro indirizzo
// visibile e che deve essere inserito al posto di [email]email@dominio.tld[/email]
// per abilitarlo togliere // prima di $headmail.="Reply-To: [email]email@dominio.tld[/email]\n";
//
// $headmail.="Reply-To: [email]email@dominio.tld[/email]\n";
//
// #######################################
// abilitare BCC se si desidera inviare la posta ad un altro indirizzo NON
// visibile e che deve essere inserito al posto di [email]email@dominio.tld[/email]
// per abilitarlo togliere // prima di $headmail.="BCC: [email]email@dominio.tld[/email]\n";
//
// $headmail.="BCC: [email]email@dominio.tld[/email]\n";
//
// #######################################
//
$headmail.="User-Agent: Php Mail Function\n";
$headmail.="X-Accept-Language: en-us, en\n";
$headmail.="MIME-Version: 1.0\n";
$headmail.="X-Priority: 1 (Highest)\n"; // 2 = urgente - 3 = normale
$headmail.="Content-Type: text/plain; charset=ISO-8859-1; format=flowed\n";
$headmail.="Content-Transfer-Encoding: 7bit\n";
ini_set('sendmail_from', "$destinatario");
mail("$destinatario", "$oggetto_email", "$corpo", "$headmail");
header ("Location: $pagina_grazie");
} else {
header ("Location: $pagina_error_condizioni");
}
} else {
header ("Location: $pagina_error_email");
}
} else {
header ("Location: $pagina_error_empty");
}
?>