Visualizzazione dei risultati da 1 a 8 su 8

Discussione: errore codice captcha

  1. #1

    errore codice captcha

    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 &ldquo;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&agrave; 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");

                        }

    ?>

  2. #2
    Evidentemente $securimage->check($_POST['captcha_code']) è false!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Quindi invece di mettere == false devo mettere = false?

    Ma mi sai spiegare perché questa cosa dal momento che ho preso questo codice da un sito che già ho e lì funziona benissimo?

  4. #4
    Originariamente inviato da liviasettantuno
    Quindi invece di mettere == false devo mettere = false?
    Mi sa che non hai capito! Non c'è nulla da cambiare, se ti rimanda alla pagina di errore vuol dire che la condizione dell'if è vera per cui occorre indagare sul perchè ciò si verifica.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    si infatti scusami, sono un po' dura di comprendonio su questa faccenda.
    Mi sapresti solo accennare a quali potrebbero essere le cause da ricercare?

  6. #6
    Come ti dicevo prima devi verificare cosa fa il metodo check() della classe Securimage.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Come verificare cosa faccia il check(), non lo so.
    Però come prova del nove ho preso il mio bel sito è l'ho copiato in un altro spazio hosting. Quest'ultimo ha come provider Aruba e lì funziona benissimo (mi dà il messaggio che l'invio della form è avvenuto correttamente).

    Invece nell'altro no. Stessi identici file, stessi identici percorsi.

    Qualcuno mi sa dire da cosa può dipendere?

  8. #8

    risolto

    Era un problema di configurazione lato PHP risolto dal provider.
    Saluti a tutti

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.