Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    684

    Controllo campi e captcha

    Ciao a tutti,
    ho questo codice:

    <?

    // se il valore nella sessione non è uguale al valore digitato
    // l'utente è re-inviato al modulo per un nuovo inserimento
    if ($_SESSION['codice']!=$_REQUEST['codice']) {
    // header("location: modulo.php");
    }

    // qui di seguito metti il tuo codice per il controllo dei dati inseriti dall'utente
    //..


    // codice invio email
    $msg = "RICHIESTA INFORMAZIONI DAL SITO INTERNET\n";
    $msg .= "Nome:\t$nome\n";
    $msg .= "Cognome:\t$cognome\n";
    $msg .= "Tel:\t$tel\n";
    $msg .= "E mail:\t$email\n";
    $msg .= "Informazioni richieste:\t$info\n";
    $destinatario = "miamail@dominio.it;
    $oggetto = "Richiesta informazioni dal sito internet";
    mail($destinatario,$oggetto,$msg,"From:$email");

    exit;

    ?>


    La prima parte fa riferimento ad un "captcha" presente all'interno del form.
    La seconda, ovviamente, è l'invio della mail.

    PROBLEMI:

    1) La mail viene inviata ugualmente anche se si inserisce il codice sbagliato: mi aiutate ad inserire un controllo sul codice?

    2) Quando ricevo la mail non vedo chi la manda, eppure come "From" ho inserito $email. Come mai?

    Ps. Ho notato che non passano le variabili :-(

    Grazie!

  2. #2
    ok stai facendo un po di casini con la funzione mail()

    se vuoi specificare un mittente devi scrivere

    From:".$email."\r\n X-Mailer: PHP/" . phpversion();


    ma poi soprattutto dove hai settato la variabile $email ????????
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    684

    La variabile email non è quella del form?

    Scusami ma in php sono alle prime armi.

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    684
    Il problema del passaggio delle variabili l'ho risolto con un file .htaccess (le register globals non erano attive) ma continuo ad avere problemi per il controllo della stringa "captcha".

    Praticamente l'invio della mail avviene ugualmente anche se digito una stringa sbagliata.

    Mi aiutate??

    Grazie

  5. #5
    Ma è ovvio
    tu non setti le variabili $_POST e $_GET


    se riesci postami il form che voglio controllare alcuni parametri
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    684
    Ecco il form:

    <form action="invia_modulo.php" method="post" onSubmit="MM_validateForm('nome','','R','cognome', '','R','tel','','RisNum','email','','RisEmail','in fo','','R');return document.MM_returnValue">
    <table width="100%" border="0" cellpadding="0" cellspacing="3" class="form">
    <tr>
    <td width="36%" style="margin-left:10px;">Nome</td>
    <td width="63%"> <input type="text" name="nome"> </td>
    </tr>
    <tr>
    <td>Cognome</td>
    <td> <input type="text" name="cognome"> </td>
    </tr>
    <tr>
    <td>Telefono</td>
    <td><input name="tel" type="text" id="tel"></td>
    </tr>
    <tr>
    <td>E mail</td>
    <td> <input type="text" name="email"> </td>
    </tr>
    <tr>
    <td>Informazioni richieste</td>
    <td> <textarea name="info"></textarea> </td>
    </tr>
    <tr>
    <td><?
    $numero = 6;
    // numero caratteri da usare per il codice

    $data = date("Y-m-d H:i:s");
    $codice = substr(md5($data),10,$numero);
    // ho generato un codice casuale legato all'orario
    $_SESSION['codice'] = $codice;
    // lo memorizzo per poterlo poi controllare

    // controllo se la libreria è attiva
    if (!function_exists('gd_info')) print "Occorre attivare la libreria grafica";
    else {
    header("Content-type: image/png");
    $percorso = "img/img-base.jpg";
    $image = ImageCreatefromJPEG($percorso);
    $green = imagecolorallocate($image,51,104,51);
    ImageString($image, 5, 35, 12, $codice, $green);
    Imagepng($image);
    ImageDestroy($image);
    }

    ?></td>
    <td><input type="codice" name="codice" value="" size="12">
    codice di convalida</td>
    </tr>
    <tr>
    <td colspan="2"> <div align="center">
    <input type="submit" name="Submit" value="Invia">
    </div></td>
    </tr>
    <tr>
    <td colspan="2"></td>
    </tr>
    </table>
    </form>

  7. #7
    Ok è come supponevo :
    tu usi il metodo POST
    codice:
    <form action="invia_modulo.php" method="post" onSubmit=".....">
    Quindi se vuoi che le variabili passino devi richiederle con $_POST['nomeCampo']

    Ti faccio l'esempio della Mail
    codice:
    <tr>
    <td>E mail</td>
    <td> <input type="text" name="email"> </td>
    </tr>
    il nome è email per farlo diventare la variabile devi fare :

    $email=$_POST['email'];

    ora la variabile che ti serve è pronta...

    cosi anche per tutti gli altri
    • telefono
    • Cognome
    • Informazioni richieste
    • codice di covalida
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    684
    Ti ringrazio per la spiegazione.

    Questo vale anche per la variabile "captcha"?

    No perchè la mail viene inviata anche se metto il codice sbagliato:-(

  9. #9
    si vale anche per il campo codice
    <input type="codice" name="codice" value="" size="12">
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    684
    Ho inserito quello che mi hai detto nella pagina invia_modulo.php ma ho fatto dei casini e non so dove sta l'errore...praticamente se provo ad inviare il form ora non me lo invia, anche se il codice è corretto:

    <?

    // se il valore nella sessione non è uguale al valore digitato
    // l'utente è re-inviato al modulo per un nuovo inserimento
    session_start();
    $nome=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $tel=$_POST['tel'];
    $email=$_POST['email'];
    $info=$_POST['info'];
    $codice=$_POST['codice'];

    if ($_SESSION['codice']!=$_REQUEST['codice']) {
    header("location: modulo.php");
    }else{
    // codice invio email
    $msg = "RICHIESTA INFORMAZIONI DAL SITO INTERNET\n";
    $msg .= "Nome:\t$nome\n";
    $msg .= "Cognome:\t$cognome\n";
    $msg .= "Tel:\t$tel\n";
    $msg .= "E mail:\t$email\n";
    $msg .= "Informazioni richieste:\t$info\n";
    $destinatario = "maimail@dominio.it";
    $oggetto = "Richiesta informazioni dal sito internet";
    mail($destinatario,$oggetto,$msg,"From:".$email."\ r\n X-Mailer: PHP/" . phpversion());

    exit;
    }

    // qui di seguito metti il tuo codice per il controllo dei dati inseriti dall'utente
    //..

    ?>

    Dove sbaglio??

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.