Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema con form mail

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    118

    Problema con form mail

    Salve,

    ho un form mail con validazione dei campi jQuery ajax.
    Tutto funziona perfettamente, e l'invio della mail viene effettuato.

    ma l'email non arriva a destinazione.

    Grazie.

    Questo è il codice:

    Javascript
    codice:
    <script type="text/javascript">
    $(function() {
    $(".submit").click(function() {
    var nome = $("#nome").val();
    var email = $("#email").val();
    var oggetto = $("#oggetto").val();
    var messaggio = $("#messaggio").val();
    var dataString = 'nome='+ nome + '&email=' + email + '&oggetto=' + oggetto + '&messaggio=' + messaggio;
    if(nome=='' || email=='' || oggetto=='' || messaggio=='')
    {
    $('.success').fadeOut(200).hide();
    $('.error').fadeIn(200).show();	
    }
    else
    {
    $.ajax({
    type: "POST",
    url: "index.php",
    data: dataString,
    success: function(){
    $('.success').fadeIn(200).show();
    $('.error').fadeOut(200).hide();	
    }
    });
    }
    return false;
    });
    });
    </script>
    PHP
    codice:
    <form autocomplete="off" name="form" method="post" action="#">
    <p class="clearfix">
    <input id="nome" type="text" name="nome" placeholder="Nome" class="input" />
    </p>	
    <p class="clearfix">
    <input id="email" type="text" name="email" placeholder="e-mail" class="input" />
    </p>	
    <p class="clearfix">
    <input id="oggetto" type="text" name="oggetto" placeholder="Oggetto" class="input" />
    </p>
    <p class="clearfix">
    <textarea id="messaggio" name="messaggio" placeholder="Messaggio" class="input"></textarea>
    </p>				
    <input type="reset" value="Reset" id="contact_reset" />
    <input type="submit" name="submit" value="Invia" id="contact_submit" class="submit">
    <span class="error" style="display:none;">compilare tutti i campi</span>
    <span class="success" style="display:none;">e-mail inviata correttamente</span>
    </form>
    
    <?php
    error_reporting(E_ERROR | E_WARNING | E_PARSE);
    if(isset ($_POST["submit"])) {
    
    //dati relativi al sito web
    $name=$_POST[nome];
    $email=$_POST[email];
    $subject=$_POST[oggetto];
    $message=$_POST[messaggio];
    
    $to= "qui la mail di destinazione";
    $subject= "richiesta info";
    
    $boundary = "==MP_Bound_xyccr948x=="; 
    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: multipart/alternative; boundary=\"$boundary\"\r\n"; 
    $headers .= "From: $email\r\n";
    
    $html_msg = "Nome:" . $name . "
    "; 
    $html_msg .= "E-mail: " . $email . "
    "; 
    $html_msg .= "Oggetto: " . $subject . "
    ";
    $html_msg .= "Messaggio " . $message . "
    ";
    
    $confirmmessage= "$html_msg" . "\n\n"; 
    $msg = "This is a Multipart Message in MIME format\n"; 
    $msg .= "--$boundary\n"; 
    $msg .= "Content-type: text/html; charset=iso-8859-1\n"; 
    $msg .= "Content-Transfer-Encoding: 7bit\n\n"; 
    $msg .= $confirmmessage . "\n"; 
    $msg .= "--$boundary--"; 
    
    $message = $msg;
    
    $sendmail=mail($to, $subject, $message, $headers); 
    }
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    118
    Nessuno che sappia aiutarmi?

  3. #3
    Se non inizializzi la variabile $to difficilmente potrà essere inviata la mail!

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    118
    Originariamente inviato da Samleo
    Se non inizializzi la variabile $to difficilmente potrà essere inviata la mail!
    L'ho modificata per metterla qui sul forum.
    Ovviamente nello script originale vi è la mia mail.

    Ho effettuato delle modifiche allo script ed ora funge tutto bene.
    C'è ancora un'anomalia che non riesco a spiegarmi. Praticamente al refresh della pagina arriva una mail con i campi "nome, oggetto e messaggio" vuoti. Successivamente se provo a compilare il form e ad inviare la richiesta, la mail arrivata compilata sulla casella di posta che ho su outlock.
    Ma ogni qualvolta visito il sito, o lo aggiorno, arriva questa mail con i campi vuoti.

    JS
    codice:
    $(function() {
    
    $(".submit").click(function() {
        var nome = $("#nome").val();
    	var email = $("#email").val();
    	var oggetto = $("#oggetto").val();
    	var messaggio = $("#messaggio").val();
        var dataString = '&nome='+ nome + '&email=' + email + '&oggetto=' + oggetto + '&messaggio=' + messaggio;
    	if(nome=='' || email=='' || oggetto=='' || messaggio=='')
    	{
    	$('.success').fadeOut(200).hide();
        $('.error').fadeIn(200).show();	
    	}
    	
    	else
    	{
    	$.ajax({
    	type: "POST",
        url: "index.php",
        data: dataString,
        success: function(){
    	$('.success').fadeIn(200).show();
        $('.error').fadeOut(200).hide();
       }
    });
    	}
        return false;
    	});
    });
    PHP
    codice:
    <form autocomplete="off" enctype="multipart/form-data" method="post" name="form">
    					<p class="clearfix">
    					<input id="nome" type="text" name="nome" placeholder="Nome" class="input" />
    					</p>	
    					<p class="clearfix">
    					<input id="email" type="text" name="email" placeholder="e-mail" class="input" />
    					</p>	
    					<p class="clearfix">
    					<input id="oggetto" type="text" name="oggetto" placeholder="Oggetto" class="input" />
    					</p>
    					<p class="clearfix">
    					<textarea id="messaggio" name="messaggio" placeholder="Messaggio" class="input"></textarea>
    					</p>				
    					<input type="reset" value="Reset" id="contact_reset" />
    					<input type="submit" name="submit" value="Invia" id="contact_submit" class="submit">
    					<input type="hidden" name="well" value="ok" >
    					<span class="error" style="display:none;">compilare tutti i campi</span>
    					<span class="success" style="display:none;">e-mail inviata correttamente</span>
    					</form>		
    <?php
    error_reporting(E_ERROR | E_WARNING | E_PARSE);
    
    $name=$_POST[nome];
    $mail=$_POST[email];
    $object=$_POST[oggetto];
    $text=$_POST[messaggio];
    
    $to= "mail modificata";
    $subject= "Richiesta Informazioni";
    
    $boundary = "==MP_Bound_xyccr948x=="; 
    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: multipart/alternative; boundary=\"$boundary\"\r\n"; 
    $headers .= "From: $mail\r\n";
    
    $html_msg = "Nome: " . $name . "
    "; 
    $html_msg .= "Oggetto: " . $object . "
    ";
    $html_msg .= "Messaggio: " . $text . "
    ";
    
    $confirmmessage= "$html_msg" . "\n\n"; 
    $msg = "This is a Multipart Message in MIME format\n"; 
    $msg .= "--$boundary\n"; 
    $msg .= "Content-type: text/html; charset=iso-8859-1\n"; 
    $msg .= "Content-Transfer-Encoding: 7bit\n\n"; 
    $msg .= $confirmmessage . "\n"; 
    $msg .= "--$boundary--"; 
    
    $message = $msg;
    
    mail($to, $subject, $message, $headers); 
    
    ?>
    Grazie per la risposta.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    42
    forse la funzione ajax parte in automatico al caricamento della pagina??

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    118
    Originariamente inviato da alangv
    forse la funzione ajax parte in automatico al caricamento della pagina??
    L'ho pensato anche io.

    Come posso ovviare a quest'inconveniente?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    42
    Anzi cambio idea...prova a mettere un
    Codice PHP:
    if(isset($_POST["submit"])) 
    nel codice php

    Poi sarebbe oppurtuno un controllo dei campi obbligatori...tramite JS e anche PHP per sicurezza

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    118
    Originariamente inviato da alangv
    Anzi cambio idea...prova a mettere un
    Codice PHP:
    if(isset($_POST["submit"])) 
    nel codice php

    Poi sarebbe oppurtuno un controllo dei campi obbligatori...tramite JS e anche PHP per sicurezza
    avevo già provato questa soluzione. Inserendo questo codice, non arriva nè l'email vuota, nè quella compilata.

    E' davvero molto strano.

    Grazie per l'interessamento comunque

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    42
    Bhè allora qualche errore deve starci per forza se così non te la invia...controlla bene...non sò quello che hai scritto, così ad occhio non sò aiutarti...

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.