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

    NON si genera immagine captcha

    Ciao a tutti, ho questo grave problema...non mi genera l'immagine captcha del contact form, che ho provato a creare da me...non capisco dove sbaglio.

    Directory principale del sito ho aggiunto il file esito.php e captcha.php oltre a una immagine di sfondo captcha.jpg

    specifico che il form contiene un captcha e la spunta per l'informativa sulla privacy



    Codice del file captcha.php
    Codice PHP:
    <?php
    session_start
    ();
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0"false);
    header("Pragma: no-cache");
     
    function 
    _generateRandom($length=6)
    {
        
    $_rand_src = array(
            array(
    48,57//digits
            
    , array(97,122//lowercase chars
    //        , array(65,90) //uppercase chars
        
    );
        
    srand ((double) microtime() * 1000000);
        
    $random_string "";
        for(
    $i=0;$i<$length;$i++){
            
    $i1=rand(0,sizeof($_rand_src)-1);
            
    $random_string .= chr(rand($_rand_src[$i1][0],$_rand_src[$i1][1]));
        }
        return 
    $random_string;
    }
     
    $im = @imagecreatefromjpeg("captcha.jpg");
    $rand _generateRandom(3);
    $_SESSION['captcha'] = $rand;
    ImageString($im522$rand[0]." ".$rand[1]." ".$rand[2]." "ImageColorAllocate ($im000));
    $rand _generateRandom(3);
    ImageString($im522" ".$rand[0]." ".$rand[1]." ".$rand[2], ImageColorAllocate ($im25500));
    Header ('Content-type: image/jpeg');
    imagejpeg($im,NULL,100);
    ImageDestroy($im);
    ?>
    codice del file esito.php
    Codice PHP:
    <?php session_start() ?>

    <?php
     
    function isValidEmail($email){
        return 
    eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"$email);
    }
     
    if (isset(
    $_POST['submit'])) {
        
    $nome=$_POST['nome'];
        
    $email=$_POST['email'];
        
    $messaggio=$_POST['messaggio'];
        
    $privacy=$_POST['privacy'];
        if (!empty(
    $nome)) {
            if (!empty(
    $email)) {
                if (
    isValidEmail($email)) {
                    if (!empty(
    $messaggio)) {
                        if (
    $privacy=1) {
                            if(
    $_SESSION["captcha"]=$_POST["captcha"]) {
                                
    $testo_del_messaggio="Nome: $nome\n";
                                
    $testo_del_messaggio.="Email: $email\n";
                                
    $testo_del_messaggio.="Messaggio: $messaggio\n";
                                
    $testo_del_messaggio.="Privacy: $privacy\n";
                                
    $esito=mail("email_azienda@azienda.com","Messaggio di $nome ($email)"$testo_del_messaggio);
                                if (
    $esito) {
                                    echo 
    "Esito: Messaggio inviato, ripsonderemo appena possibile!";
                                } else {
                                    echo 
    "Errore: Non &egrave; stato possibile inviare il messaggio!";
                                }
                            } else {
                            echo 
    "Errore: Il Codice di verifica non &egrave; corretto!";
                            }
                        } else {
                            echo 
    "Errore: Bisogna dare il consenso sulla Privacy!";
                        }
                    } else {
                        echo 
    "Errore: Manca il Messaggio!";
                    }
                } else {
                    echo 
    "Errore: Formato Email non corretto!";
                }
            } else {
                echo 
    "Errore: Manca un indirizzo Email!";
            }
        } else {
            echo 
    "Errore: Manca il Nome!";
        }
    } else {
        echo 
    "Errore: Modulo di invio non valido!";
    }
     
    ?>
    testo in index.html relativo al form
    codice HTML:
    <form id="form1" name="form1" method="post" action="esito.php">
    <div class="field half first">
     <p>
     <label for="nome">Nome</label>
     <input type="text" name="nome" id="nome" />
     </p></div>
     <div class="field half">
     <p>
     <label for="email">Email</label>
     <input type="text" name="email" id="email" />
     </p></div>
     <p>
     <label for="messaggio">Messaggio</label>
     <textarea name="messaggio" id="messaggio" cols="45" rows="5"></textarea>
     </p>
     <p>
     <input name="privacy" type="checkbox" id="privacy" value="1" />
    <label for="privacy">....Testo della Privacy....</label></p>
      <p>
        <label for="captcha">Digita il Codice di verifica</label>
        <input type="text" name="captcha" id="captcha" />
      <img src="captcha.php" alt="captcha image"></p>
    <p>
     <input type="submit" name="submit" id="submit" value="Invia Messaggio" />
     <input type="reset" value="Reset" />
     </p>
    </form>

    Grazie a tutti per le risposte

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Il codice per creare il captcha pare che funzioni, testato adesso.
    Fai un paio di prove:
    Da browser richiama direttamente captcha.php. Se è corretto dovresti vedere l'immagine; in questo caso controlla se il path che metti nel src di img è corretto.
    Se non vedi l'immagine commenta l'istruzione header(content-type) e togli la @ da imagecreatefromjpg. In questo modo dovresti vedere eventuali errori

  3. #3
    Quote Originariamente inviata da boots Visualizza il messaggio
    Il codice per creare il captcha pare che funzioni, testato adesso.
    Fai un paio di prove:
    Da browser richiama direttamente captcha.php. Se è corretto dovresti vedere l'immagine; in questo caso controlla se il path che metti nel src di img è corretto.
    Se non vedi l'immagine commenta l'istruzione header(content-type) e togli la @ da imagecreatefromjpg. In questo modo dovresti vedere eventuali errori
    Proprio su questo avevo dubbi, la path che metto come sfondo dell'immagine captcha, deve avere delle dimensioni predefinite? perchè sembra come se non riconoscesse chaptcha.jpg e non riuscisse a scriverci sopra. Nel form che vedo in anteprima al posto del captcha mi esce la scritta "captcha image", non esce neanche lo sfondo

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Io ho provato con una jpg a caso (200x200) è funziona.

    Se togli header e la @ ti da qualche errore quando chiami captcha.php ?

  5. #5
    Risolto! Grazie mille!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.