Visualizzazione risultati 1 fino 6 di 6

Discussione: Invio dati ad un email da una form

  1. #1
    Guest

    Predefinito Invio dati ad un email da una form

    Ciao ragazzi...ho due pagine...una con un form e una con lo script php che invia i dati alla mia mail...tuttavia mi da un errore...HELP!
    Prima pagina (quella con il form):

    Codice:
    <html>
    
    <head>
    <meta http-equiv="Content-Language" content="it">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>CONTATTI</title>
    </head>
    
    <body>
    
    <form method="POST" action="http://xxxxxxxxxx/sendate.php">
    	<p><font face="Calibri" style="font-size: 15pt">CONTATTI: </font></p>
    	<table border="0" width="46%" id="table1" style="font-family: Calibri; font-size: 12pt; font-style: oblique" height="340">
    		<tr>
    			<td width="149">Nome</td>
    			<td><input type="text" name="name" size="38"></td>
    		</tr>
    		<tr>
    			<td width="149">Cognome</td>
    			<td><input type="text" name="lname" size="38"></td>
    		</tr>
    		<tr>
    			<td width="149">Email</td>
    			<td><input type="text" name="email" size="38"></td>
    		</tr>
    		<tr>
    			<td width="149">Telefono</td>
    			<td><input type="text" name="tel" size="38"></td>
    		</tr>
    		<tr>
    			<td width="149">Motivo del contatto:</td>
    	<td>		<select name="motivo">
    	<option value="commerciale">Informazioni commerciali</option>
    	<option value="preventivo">Richiesta preventivo</option>
    	<option value="appuntamento">Prenotazione appuntamento</option>
    </select></td>
    		</tr>
    
    		<tr>
    			<td width="149">Messaggio:</td>
    			<td><textarea rows="11" name="mess" cols="29"></textarea></td>
    		</tr>
    	</table>
    <INPUT type="submit" value="Invia">
    </form>
    
    </body>
    
    </html>
    Seconda pagina (quella che elabora la script php):

    Codice:
    <?php 
    $nome=$_POST['name']; 
    $cognome=$_POST['lname']; 
    $email=$_POST['email']; 
    $telefono=$_POST['tel']; 
    $motivo=$_POST['motivo']; 
    $messaggio=$_POST['mess']; 
    
    
    if($name!=null and $cognome!=null and $email!=null and $telefono!=null and $messaggio!=null){//se tutte le variabili sono state definite propongo il link 
    $to = "XXXXXXXX@gmail.com"; 
    // IL SOGGETTO DELLA MAIL 
    $subject = "Modulo proveniente dal sito <a href=\"http://www.studio.it\" target=\"_blank\"><a href="http://www.studio.it" target="_blank">www.studio.it</a></a>"; 
    
    
    // COSTRUZIONE DEL CORPO DEL MESSAGGIO 
    $body = “Contenuto del modulo:nn”; 
    
    $body .= “Dati personali ;<br>nome: ” . trim(stripslashes($_POST["name"])) . “n”; 
    $body .= “cognome: ” . trim(stripslashes($_POST["lname"])) . “n”; 
    $body .= “email: ” . trim(stripslashes($_POST["email"])) . “n”; 
    $body .= “telefono: ” . trim(stripslashes($_POST["tel"])) . “n”; 
    $body .= “motivo: ” . trim(stripslashes($_POST["motivo"])) . “n”; 
    $body .= “messaggio: ” . trim(stripslashes($_POST["mess"])) . “n”; 
    
    if(@mail($to, $subject, $body)) { // SE L’INOLTRO E’ ANDATO A BUON FINE… 
    
    echo “La mail è stata inoltrata con successo!”; 
    
    } else {// ALTRIMENTI… 
    
    echo “Si sono verificati dei problemi nell’invio della mail.”; 
    } 
    
    }else{ 
    echo “Invio dati fallito: prego riempire tutti i campi e riprocedere”; 
    } 
    ?>
    L'errore che mi da è:

    Parse error: syntax error, unexpected T_STRING in /membri/santadown/sendate.php on line 17


    In più mi piacerebbe inserire il controllo tramite immagine captcha o tramite la somma di due valori...
    Dove posso sistemare il codice??
    Dopo che lo script controlla che tutti i campi sono pieni (come ultimo controllo all'invio??)?
    Cioè...invece che inviare l'email dopo l'else metto un'altra if???
    Aiuttttt!

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Sostituisci:
    Codice PHP:
    $subject = "Modulo proveniente dal sito <a href=\"http://www.studio.it\" target=\"_blank\"><a href="http://www.studio.it" target="_blank">www.studio.it</a></a>";
    Con:
    Codice PHP:
    $subject = "Modulo proveniente dal sito <a href=\"http://www.studio.it\" target=\"_blank\">www.studio.it</a>";
    Comunque a parer mio il codice captcha dovrebbe essere il primo controllo...cioè o fai:

    Codice PHP:
    if($codice_captcha_inserito == $codice_captcha_vero){

    // codice invio mail

    }else{

    // errore codice captcha errato

    }
    Oppure

    Aggiungi qui la parte interessata:
    Codice PHP:
    if($name!=null and $cognome!=null and $email!=null and $telefono!=null and $messaggio!=null){
    Ad esempio:
    Codice PHP:
    if($name!=null and $cognome!=null and $email!=null and $telefono!=null and $messaggio!=null and $codice_captcha_inserito == $codice_captcha_vero){
    Naturalmente poi modificherai anche qui:
    Codice PHP:
    }else{
    echo \&
    #8220;Invio dati fallito: prego riempire tutti i campi e riprocedere”;
    }
    Semmai con:
    Codice PHP:
    }else{
    echo \&
    #8220;Invio dati fallito: prego riempire tutti i campi e/o controllare la correttezza del codice captcha”;
    }
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Unhappy

    Purtroppo non funziona quello che mi hai suggerito...l'errore è sempre lo stesso...

    Parse error: syntax error, unexpected T_STRING in /membri/santadown/sendate.php on line 17

    Ho sostituito esattamente ciò che mi ha detto di sostituire ma non va...proprio non capisco...HELP!

    (potrebbe essere che la variabile motivo è contenuta in un menù a tendina e non in un campo per scrivere?)

    P.S: Grazie per le dritte su captcha
    Ultima modifica di santadown : 05-05-2009 alle ore 14.51.53

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Già scusa, sul forum non si è salvata l'ultima parte del mio messaggio dove ti dicevo di modificare gli apostrofi in questo modo:
    Codice PHP:
    <?php
    $nome
    =$_POST['name'];
    $cognome=$_POST['lname'];
    $email=$_POST['email'];
    $telefono=$_POST['tel'];
    $motivo=$_POST['motivo'];
    $messaggio=$_POST['mess'];


    if(
    $name!=null and $cognome!=null and $email!=null and $telefono!=null and $messaggio!=null){//se tutte le variabili sono state definite propongo il link
    $to = "XXXXXXXX@gmail.com";
    // IL SOGGETTO DELLA MAIL
    $subject = "Modulo proveniente dal sito <a href=\"http://www.studio.it\" target=\"_blank\">www.studio.it</a>";


    // COSTRUZIONE DEL CORPO DEL MESSAGGIO
    $body = "Contenuto del modulo:nn";

    $body .= "Dati personali ;<br>nome: " . trim(stripslashes($_POST["name"])) . "n";
    $body .= "cognome: " . trim(stripslashes($_POST["lname"])) . "n";
    $body .= "email: " . trim(stripslashes($_POST["email"])) . "n";
    $body .= "telefono: " . trim(stripslashes($_POST["tel"])) . "n";
    $body .= "motivo: " . trim(stripslashes($_POST["motivo"])) . "n";
    $body .= "messaggio: " . trim(stripslashes($_POST["mess"])) . "n";

    if(@
    mail($to, $subject, $body)) { // SE L’INOLTRO E’ ANDATO A BUON FINE…

    echo "La mail è stata inoltrata con successo!";

    } else {
    // ALTRIMENTI…

    echo "Si sono verificati dei problemi nell’invio della mail.";
    }

    }else{
    echo
    "Invio dati fallito: prego riempire tutti i campi e riprocedere";
    }
    ?>
    Avrò sbagliato a premere l'edit

    Questo codice funziona...
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    Errore mio stupido...
    Sono le virgolette non riconosciute nel linguaggio ASCII
    Allego codice corretto per gli altri utenti e ringrazio tutti:

    Codice:
    <?php
    $nome=$_POST['name'];
    $cognome=$_POST['lname'];
    $email=$_POST['email'];
    $telefono=$_POST['tel'];
    $motivo=$_POST['motivo'];
    $messaggio=$_POST['mess'];
    
    
    if($name!=null and $cognome!=null and $email!=null and $telefono!=null and $messaggio!=null){//se tutte le variabili sono state definite propongo il link
     $to = "XXXXXXX@gmail.com"; 
     // IL SOGGETTO DELLA MAIL
    $subject = "Modulo proveniente dal sito <a href=\"http://www.studio.it\" target=\"_blank\">www.studio.it</a>";
    
     
     // COSTRUZIONE DEL CORPO DEL MESSAGGIO
    $body = "Contenuto del modulo:\n\n";
    
    $body .= "Dati personali ;nome: " . trim(stripslashes($_POST["name"])) . "\n";
    $body .= "cognome: " . trim(stripslashes($_POST["lname"])) . "\n";
    $body .= "email: " . trim(stripslashes($_POST["email"])) . "\n";
    $body .= "telefono: " . trim(stripslashes($_POST["tel"])) . "\n";
    $body .= "motivo: " . trim(stripslashes($_POST["motivo"])) . "\n";
    $body .= "messaggio: " . trim(stripslashes($_POST["mess"])) . "\n";
    
    
    
    if(@mail($to, $subject, $body)) { // SE L’INOLTRO E’ ANDATO A BUON FINE…
    
    echo "La mail è stata inoltrata con successo!";
    
    } else {// ALTRIMENTI…
    
    echo "Si sono verificati dei problemi nell’invio della mail.";
    }
    
    }else{
    echo "Invio dati fallito: prego riempire tutti i campi e riprocedere";
    }
    ?>

  6. #6
    Guest

    Predefinito

    Ora passo al captcha...

    Esiste un modo di farlo salvando il captcha in un file .txt o meglio .php con un die prima che impedisca di leggere la stringa generata???
    Se si è altrettanto sicuro???

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •