Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234

    Contact Form - mail vuote

    Buongiorno a tutti..
    ho un problemino con un form di contatto dove controllo i campi obbligatori grazie ad una funzione javascript e passo poi i valori ad un file php che processa la mail..
    Tutto bene se non fosse che ogni tanto mi arrivano mail vuote...

    Ho provato più volte a mandarmi dei messaggi dal form e tutto funziona perfettamente..
    è possibile che ci sia qualcosa di sbagliato nel codice e che in qualche modo partano "automaticamente" delle mail vuote e che ancora più grave non arrivino quelle compilate in modo corretto?

    Qua sotto il codice dei tre file

    Pagina contact.php dove c'è il form di contatto:
    codice:
    <form id="modulo" onsubmit="return validazione();" action="send_message.php" method="post">	
    
    	<fieldset>
    	
    		
    
    		<div class="inquiryfield">
    			<label for="firstname" class="blue">First name *</label>
    			<input class="input" name="firstname" id="firstname" value="" />
    		</div>
    		
    		<div class="inquiryfield">
    			<label for="lastname" class="blue">Last name *</label>
    			<input class="input" name="lastname" id="lastname" value="" />
    		</div>
    		
    		<div class="inquiryfield">
    			<label for="email" class="blue">Email *</label>
    			<input class="input" name="email" id="email" value="" />
    		</div>
    		
    		<div class="inquiryfield">
    			<label for="message" class="blue">Message *</label>
    			<textarea name="message" id="message" class="textarea" cols="" rows=""></textarea>
    		</div>
    
    		<div class="inquiry6field">
    			<label class="blue2">Privacy:</label>
    			<label for="privacy_si" class="blueRadio">Yes</label><input type="radio" name="privacy" id="privacy_si" class="inputradiosi" value="Accetto"/>
    			<label for="privacy_no" class="blueRadio">No</label><input type="radio" name="privacy" id="privacy_no" class="inputradiono" value="Non accetto" checked="checked"/>
    		</div>
    		
    		<div class="inquiry7field">
    			
    
    I authorize the use of my personal details in conjunction with article 13 of the new privacy laws (D.Lgs 196 of 30 June 2003).</p>
    		</div>
    		
    		
    
    			
    		<div class="buttonholder">
    			<input class="cssbutton glass c" type="reset" value=""/>
    			<input class="cssbutton glass d" type="submit" value=""/>	
    		</div>
    		
    	</fieldset>
    
    </form>

    Qua il controllo del file javascript contact_validate.js:

    codice:
    function validazione(){
    with(document.getElementById("modulo")) {
    	if(firstname.value=="") {
    	alert("Insert first name");
    	firstname.focus();
    	return false;
    	}
    	if(lastname.value=="") {
    	alert("Insert last name");
    	lastname.focus();
    	return false;
    	}
    	if(email.value=="") {
    	alert("Insert e-mail");
    	email.focus();
    	return false;
    	}
    	var stato=true;
    	if(email.value.indexOf(" ")!=-1) {
    	email.focus();
    	stato=false;
    	}
    	var chiocciola=email.value.indexOf("@");
    	if(chiocciola<2) {
    	email.focus();
    	stato=false;
    	}
    	var punto=email.value.indexOf(".", chiocciola);
    	if(punto<chiocciola+3) {
    	email.focus();
    	stato=false;
    	}
    	var lung=email.value.length;
    	if(lung-punto<3) {
    	email.focus();
    	stato=false;
    	}
    	
    	//if(stato) {
    		//alert("E-mail is valid");
    	//}else{	
    
    	if(stato==false) {
    		alert("E-mail is not valid");
    	return stato;
    	}				
    	if(message.value=="") {
    	alert("Insert message");
    	message.focus();
    	return false;
    	}
    	if (privacy_si.checked == false) {
    	alert ("You have to agree to the privacy terms");
    	privacy_si.focus();
    	return false;
    	}
    }
    alert("Message sent");
    return true;
    }

    e qua il file send_message.php che processa i dati ed invia la mail:

    codice:
    <?
    function apst($value) {
    	$value = ereg_replace("[\]", "", $value);
    	return($value);
    }
    ?>
    <? 
    $date = date("d/m/y - H:i:s");
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $privacy = $_POST['privacy'];
    
    if ($privacy == "accetto")
    {
       $percorso="accetto";
    } else { 
       $percorso="non accetto";
    }
    
    $destinatario = "info@miosito.com";
    $oggetto = "Contact da miosito.com";
    $headers = "From: $email";
    $headers .= "\r\nX-Mailer: PHP/" . phpversion();
    
    $msg = "Data - Ora: $date\r\n";
    $msg.= "Contatto da: $firstname $lastname\r\n";
    $msg.= "E-mail: $email\r\n\r\n";
    $msg.= "______________________________________________\r\n\r\n";
    $msg.= "Messaggio:\r\n";
    $msg.= apst($message);
    $msg.= " \r\n\r\n\r\n";
    $msg.= "Privacy: [$privacy] \r\n";
    
    
    $destinatario2 = "$email";
    $msg2.= "Thank you for contacting us! \r\n\r\n";
    $msg2.= "Mario Rossi";
    $oggetto2 = "Email from Mio Sito";
    $headers2 = "From: info@miosito.com";
    
    
    {
    mail($destinatario, $oggetto, $msg, $headers);
    
    mail($destinatario2, $oggetto2, $msg2, $headers2);
    
    echo "
    <html>
    <head>
    <META http-equiv='refresh' content='0;URL=contact.php'>
    </head>
    </html>
    "; }
    ?>

    Spero possiate aiutarmi..
    Grazie
    Claudio

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Nessuno sa spiegarmi il perchè arrivino mail vuote?
    Forse devo fare un controllo ulteriore nel file send_message.php
    dove nel caso in cui i campi sono pieni invia il messaggio altrimenti no!?

  3. #3
    Utente di HTML.it L'avatar di Alpha!
    Registrato dal
    May 2005
    Messaggi
    68
    Originariamente inviato da Protooler
    Nessuno sa spiegarmi il perchè arrivino mail vuote?
    Forse devo fare un controllo ulteriore nel file send_message.php
    dove nel caso in cui i campi sono pieni invia il messaggio altrimenti no!?
    Ti arriva la e-mail vuota completamente o il testo
    $msg.= "Contatto da: $firstname $lastname\r\n";
    $msg.= "E-mail: $email\r\n\r\n";
    [..]
    lo vedi?

    Edit:
    prova con
    Codice PHP:
    function apst($value) {
        
    $value ereg_replace("[\]"""$value);
        echo 
    $value;


  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Ciao Alpha!, grazie della risposta!

    Se io compilo il form mi arriva correttamente il messaggio..
    il problema è che saltuariamente mi arriva un messaggio vuoto..
    come se fosse bypassato il controllo java...ma lui funziona perfettamente..

    Questo è lò'empio di un messaggio vuoto:



    Data - Ora: 24/10/10 - 18:41:13
    Contatto da:
    E-mail:

    ______________________________________________

    Messaggio:



    Privacy: []

  5. #5
    Utente di HTML.it L'avatar di Alpha!
    Registrato dal
    May 2005
    Messaggi
    68
    Originariamente inviato da Protooler
    Ciao Alpha!, grazie della risposta!

    Se io compilo il form mi arriva correttamente il messaggio..
    il problema è che saltuariamente mi arriva un messaggio vuoto..
    come se fosse bypassato il controllo java...ma lui funziona perfettamente..

    Questo è lò'empio di un messaggio vuoto:



    Data - Ora: 24/10/10 - 18:41:13
    Contatto da:
    E-mail:

    ______________________________________________

    Messaggio:



    Privacy: []
    Io purtroppo sò veramente ben poco di Javascript, ti posso consigliare comunque di controllare da PHP che il form sia compilato a dovere!
    Codice PHP:
    if(isset($_POST['message'], $_POST['xxx']))
    {
    .. 
    continuo con l'invio


  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    In che modo posso integrare il controllo nel file send_message.php?
    codice:
    <?
    function apst($value) {
    				  $value = ereg_replace("[\]", "", $value);
    				  
        				return($value);
    					}
    ?>
    <? 
    $date = date("d/m/y - H:i:s");
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $privacy = $_POST['privacy'];
    
    if ($privacy == "accetto")
    {
       $percorso="accetto";
    } else { 
       $percorso="non accetto";
    }
    
    $destinatario = "info@miosito.com";
    $oggetto = "Contact da miosito.com";
    $headers = "From: $email";
    $headers .= "\r\nX-Mailer: PHP/" . phpversion();
    
    $msg = "Data - Ora: $date\r\n";
    $msg.= "Contatto da: $firstname $lastname\r\n";
    $msg.= "E-mail: $email\r\n\r\n";
    $msg.= "______________________________________________\r\n\r\n";
    $msg.= "Messaggio:\r\n";
    $msg.= apst($message);
    $msg.= " \r\n\r\n\r\n";
    $msg.= "Privacy: [$privacy] \r\n";
    
    
    $destinatario2 = "$email";
    $msg2.= "Thank you for contacting us! \r\n\r\n";
    $msg2.= "Mario Rossi";
    $oggetto2 = "Email from Mio Sito";
    $headers2 = "From: info@miosito.com";
    
    
    if(isset($_POST['firstname'], $_POST['lastname'], $_POST['email'], $_POST['message'], $_POST['privacy']))
    { 
    mail($destinatario, $oggetto, $msg, $headers);
    
    mail($destinatario2, $oggetto2, $msg2, $headers2);
    
    echo "
    <html>
    <head>
    <META http-equiv='refresh' content='0;URL=contact.php'>
    </head>
    </html>
    "; }
    ?>
    Questo garantisce l'invio solo con i campi compilati giusto?

  7. #7
    Utente di HTML.it L'avatar di Alpha!
    Registrato dal
    May 2005
    Messaggi
    68
    Codice PHP:
    <?
    function apst($value)
    {
        
    $value ereg_replace("[\]"""$value);
        return(
    $value);
    }

    if(isset(
    $_POST['firstname'], $_POST['lastname'], $_POST['email'], $_POST['message'], $_POST['privacy']) && $_POST['privacy'] == "accetto")
    {
        
    $date      date("d/m/y - H:i:s");
        
    $firstname $_POST['firstname'];
        
    $lastname  $_POST['lastname'];
        
    $email     $_POST['email'];
        
    $message   $_POST['message'];
        
    $privacy   $_POST['privacy'];

        
    $destinatario "info@miosito.com";
        
    $oggetto "Contact da miosito.com";
        
    $headers "From: $email";
        
    $headers .= "\r\nX-Mailer: PHP/" phpversion();

        
    $msg "Data - Ora: $date\r\n";
        
    $msg.= "Contatto da: $firstname $lastname\r\n";
        
    $msg.= "E-mail: $email\r\n\r\n";
        
    $msg.= "______________________________________________\r\n\r\n";
        
    $msg.= "Messaggio:\r\n";
        
    $msg.= apst($message);
        
    $msg.= " \r\n\r\n\r\n";
        
    $msg.= "Privacy: [$privacy] \r\n";

        
    $destinatario2 "$email";
        
    $msg2.= "Thank you for contacting us! \r\n\r\n";
        
    $msg2.= "Mario Rossi";
        
    $oggetto2 "Email from Mio Sito";
        
    $headers2 "From: [email]info@miosito.com[/email]";

        
    mail($destinatario$oggetto$msg$headers);
        
    mail($destinatario2$oggetto2$msg2$headers2);
        echo 
    "
        <html>
        <head>
        <META http-equiv='refresh' content='0;URL=contact.php'>
        </head>
        </html>
        "
    ;
    }
    else
    {
        echo 
    "Deve riempire tutti i cambi obbligatori!";
    }
    ?>


    Ti ho pure rimosso
    Codice PHP:
        if($privacy == "accetto")
        {
           
    $percorso="accetto";
        } else { 
           
    $percorso="non accetto";
        } 
    (pure il controllo isset() che hai fatto dopo)
    perchè inutile

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Grazie mille Alpha!

    In questo modo si esegue un secondo controllo oltre a quello javascript..
    e in teoria non dovrebbe partire nessuna mail con campi vuoti giusto!?

    Lo provo e vediamo se risolve..

  9. #9
    Utente di HTML.it L'avatar di Alpha!
    Registrato dal
    May 2005
    Messaggi
    68
    Originariamente inviato da Protooler
    Grazie mille Alpha!

    In questo modo si esegue un secondo controllo oltre a quello javascript..
    e in teoria non dovrebbe partire nessuna mail con campi vuoti giusto!?

    Lo provo e vediamo se risolve..
    Ehm.. togli javascript.
    Adesso se i campi sono vuoti, la e-mail non parte e ti viene notificato. Altrimenti se i cambi sono riempiti ed è stata accettata la privacy, verrà inviata la e-mail

  10. #10
    Utente di HTML.it L'avatar di Alpha!
    Registrato dal
    May 2005
    Messaggi
    68
    Scusamiii non ti ho chiesto se javascript lo usi solo per il controllo dei dati oppure anche altro!

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.