[Javascript] Messaggio di avvenuto invio mail non visualizzato

  • Creatore Discussione Creatore Discussione eleumas
  • Data di inizio Data di inizio

eleumas

Utente Attivo
16 Ago 2015
67
2
8
Ciao a tutti, ho un problemino. Quando invio la mail non viene visualizzato il messaggio di avvenuto invio o di errore. Di fatto la mail mi arriva, non appare solo il messaggio. Qualcuno per favore potrebbe aiutarmi? Grazie.

HTML:
<form class="uk-grid-medium" id="contactForm" uk-grid>
          
          <div class="uk-width-1-1 uk-width-1-2@l uk-width-1-2@xl">
            <input class="uk-input" type="text" id="name" name="name" title="inserisci solo lettere." placeholder="Nome">
          </div>
          
          <div class="uk-width-1-1 uk-width-1-2@l uk-width-1-2@xl">
            <input class="uk-input" type="email" id="email" name="email" placeholder="E-mail">
          </div>
          
          <div class="uk-width-1-1">
            <textarea style="height:150px;" class="uk-textarea" id="message" name="message" placeholder="Messaggio"></textarea>
          </div>
          
          <div class="uk-width-1-1 uk-width-1-2@s uk-width-1-2@m uk-width-1-2@l uk-width-1-2@xl">
            <input class="uk-checkbox" type="checkbox" id="checkbox" name="checkbox" value="si">
            <span>Accetto la</span>
            <a class="link-privacy" href="#privacy" uk-toggle>Privacy Policy</a>
            <!-- PRIVACY -->
            <?php include 'assets/privacy-policy.php'; ?>
          </div>
        
        <div class="uk-width-1-1 uk-text-left@m uk-text-left@m uk-text-center">
          <button class="uk-button uk-button-default uk-button-large" type="submit" id="button" onclick="sendForm()">INVIA MESSAGGIO</button>
        </div>
        
        <div class="uk-width-1-1">
          <div class="uk-alert-primary" id="alert-primary" uk-alert style="display:none">
            <a class="uk-alert-close" uk-close></a>
            <p>invio in corso...</p>
          </div>
          
          <div class="uk-alert-warning" id="alert-warning" uk-alert style="display:none">
            <a class="uk-alert-close" uk-close></a>
            <p>I dati inseriti non sono corretti!</p>
          </div>
 
          <div id="result"></div>
          
        </div>
        
      </form>
Codice:
      $("#contactForm").validate(
        {
          rules:
          {
            name: {required: true},
            email: {required: true, email: true},
            message: {required: true, maxlength : 1000},
          },

          messages:
          {
            name: {required: "Inserisci il nome!"},
            email: {required: "Inserisci la tua email!"},
            message: {required: "Inserisci il messaggio!", maxlength: "Puoi digitare massimo 1000 caratteri!"}
          },

          submitHandler: function(form) {

            $("#alert-primary").show(); // mostra alert durante il caricamento

            var data = {
                name: $("#name").val(),
                email: $("#email").val(),
                message: $("#message").val(),
                checkbox: $("#checkbox").is(":checked")
            };

            $.ajax({
                type: 'POST',
                data: data,
                dataType: "html",
                url: 'assets/contact.php',
                success: function () {
                  $("#alert-primary").hide();  // nascondi alert finito di caricare
                  $("#result").show();  // messaggio di avvenuto invio o di errore
                }
            });
            $("#result").show();
            return false;
          },

          invalidHandler: function() {
            $("#alert-warning").show();
          },

        });

PHP:
<?php

// Controllo della variabile empty

if(
empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']) ||
!filter_var($_POST['email'],FILTER_SANITIZE_EMAIL,FILTER_VALIDATE_EMAIL))

{
   echo "<div class='uk-alert-danger' id='alert-danger' uk-alert>
     <a class='uk-alert-close' uk-close></a>
     <p>Mi dispiace si è verificato un errore. Messaggio non inviato!</p>
   </div>";
}

else

{
   $name = $_POST['name'];
   $email = $_POST['email'];
   $message = $_POST['message'];
   $checkbox = $_POST['checkbox'] == "true" ? "si" : "no";

   // Creazione e-mail e invio del messaggio

   $to = '[email protected]'; // <--- inserire e-mail destinatario
   $email_subject = "Ti ha scritto dal tuo sito:  $name";

   //$email_body = "Questi sono i dettagli:\n\nNome: $name\nCognome: $surname\nEmail: $email\nTelefono: $phone\nNazionalità: $nationality\nCamera: $rooms\nData di partenza: $calendarstart\nData di arrivo: $calendarend\nMessaggio: $message\nAccettazione Privacy: $checkbox";

   $email_body = <<<HTML
   <!DOCTYPE html>
   <html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   </head>
   <body>
   <!--CORPO MAIL-->
   <ul style="list-style: none; padding-left: 0;">
   <li style="margin: 0 0 15px 0;">Questi sono i dettagli del messaggio:</li>
   <li style="margin: 0;"><strong>Nome:</strong> $name</li>
   <li style="margin: 0;"><strong>E-mail:</strong> $email</li>
   <li style="margin: 0;"><strong>Messaggio:</strong> $message</li>
   <li style="margin: 0;"><strong>Accettazione Privacy:</strong> $checkbox</li>
   </ul>
   </body>
   </html>
HTML;

   $headers = "Da: [email protected]\n"; // Non modificare questo indirizzo e-mail
   $headers .= "Reply-To: $email";

   //costruisco la header della mail
   $mail_headers = "From: " .  $name . " <" .  $email . ">\r\n";
   $mail_headers .= "Reply-To: " .  $email . "\r\n";
   $mail_headers .= "X-Mailer: PHP/" . phpversion() . "\r\n";
   $mail_headers .= "MIME-Version: 1.0\r\n";
   $mail_headers .= "Content-type: text/html; charset=iso-8859-1";

   //invio la mail
   $send_mail = mail($to,$email_subject,$email_body,$mail_headers);


   echo "<div class='uk-alert-success' id='alert-success' uk-alert>
     <a class='uk-alert-close' uk-close></a>
     <p>Messaggio inviato!</p>
   </div>";
}

?>
 

Discussioni simili