Empty fields PHPMailer [closed]

0

I have a form from which to be fired, the fields arrive empty in the email. Does anyone know why this is happening? See below:

FORM

<form method="post" id="form">
        <div class="form-group">
          <label for="nome">Nome:</label>
          <input type="text" name="Nome" class="form-control" id="nome" value="" style="width: 100%">
        </div>
        <div class="form-group">
          <label for="email">Email:</label>
          <input type="text" name="Email" class="form-control" id="email" value="" style="width: 100%">
        </div>
        <div class="form-group">
          <label for="mensagem">Mensagem:</label>
          <textarea name="Mensagem" class="form-control" id="mensagem" value="" style="height: 100px"></textarea>
        </div>
    <div align="center">
        <button type="submit" class="btn btn-primary"><i class="fa fa-envelope" aria-hidden="true"></i> Enviar</button>
    </div>
    </form>

JQUERY

<script src="bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>                
<script type="text/javascript">
$(document).ready(function(){
   $('#form').submit(function() {
     data = $('#form').serialize();

      $.ajax({
    type: "POST",
    url: "validar.php",
    data: dados,
    success: function( data )
    {
     if(data == 1){
       $('#myModal').modal('show');
    }else{
       $('#form input').val("");
       $('#form textarea').val("");
       $('#myModal1').modal('show');           
    }
 }
      return false;
    });
});
</script>

VALIDAR.PHP

    $nome = $_POST["Nome"];
    $email = $_POST["Email"];
    $mensagem = $_POST["Mensagem"];

    require_once('phpmailer/PHPMailerAutoload.php');
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->Host = "mail.site.com.br"; 
    $mail->Port  = '587';
    $mail->Username = '[email protected]';
    $mail->Password = "senha";

    $mail->From = $email;
    $mail->FromName = $nome;
    $mail->AddAddress("[email protected]");
    $mail->IsHTML(true);
    $mail->Subject = "Mensagem do site Empresa"; 

    $data = date("d/m/Y");
    $hora = date("H:i");

    $mensagem = "Mensagem enviada no dia ".$data. " às " .$hora."<br><br>";
    $mensagem .= "<strong>Nome:</strong> ".$nome."<br>";
    $mensagem .= "<strong>Email:</strong> ".$email."<br>";
    $mensagem .= "<strong>Mensagem:</strong> ".$mensagem."<br>";

    $mail->Body = $mensagem;

    if(!$mail->Send()){
        $erro = 1;       
    }else{
        $erro = 0;
    }   
echo $erro;

RESULT

In addition to the empty fields, duplicates are also arriving and there are no links in the validar.php file:

Mensagem enviada no dia 04/08/2017 às 11:54

Nome: 
Email: 
Mensagem: Mensagem enviada no dia 04/08/2017 às 11:54

Nome: 
Email:
    
asked by anonymous 04.08.2017 / 17:01

1 answer

2

Switch:

$nome = $_POST["Nome"];
$email = $_POST["Email"];
$mensagem = $_POST["Mensagem"];

By:

$nome = $_POST["nome"];
$email = $_POST["email"];
$mensagem = $_POST["mensagem"];

And let name= equal id= , all in minuscule, for example change this:

<input type="text" name="Nome" class="form-control" id="nome" value="" style="width: 100%">

For this:

<input type="text" name="nome" class="form-control" id="nome" value="" style="width: 100%">

It should look like this:

    <div class="form-group">
      <label for="nome">Nome:</label>
      <input type="text" name="nome" class="form-control" id="nome" value="" style="width: 100%">
    </div>
    <div class="form-group">
      <label for="email">Email:</label>
      <input type="text" name="email" class="form-control" id="email" value="" style="width: 100%">
    </div>
    <div class="form-group">
      <label for="mensagem">Mensagem:</label>
      <textarea name="mensagem" class="form-control" id="mensagem" value="" style="height: 100px"></textarea>
    </div>
    
05.08.2017 / 00:02