[PHP Mailer] Valores do formulário não estão indo por $_POST

Boa tarde.
Galera, estou com um problema chato.
Tenho um formulário de contato e quando envio um e-mail de contato, o e-mail até chega, porem não é passado os valores dos input’s, exceto a mensagem.

Aqui está o codigo do meu formulário:

<form id="contactform" name="contactform" action="email.php" method="POST" >
	<div class="row form-group">
		<div class="col-md-12">
			<!-- <label for="fname">First Name</label> -->
			<input type="text" id="name" class="form-control" placeholder="Nome" 
			required>
		</div>
	</div>

	<div class="row form-group">
		<div class="col-md-12">
			<!-- <label for="email">Email</label> -->
			<input type="email" id="email" class="form-control" placeholder="E-mail" 
			required>
		</div>
	</div>

	<div class="row form-group">
		<div class="col-md-12">
			<!-- <label for="subject">Subject</label> -->
			<input type="text" id="subject" class="form-control" 
			placeholder="Assunto">
		</div>
	</div>

	<div class="row form-group">
		<div class="col-md-12">
			<!-- <label for="message">Message</label> -->
			<textarea name="message" id="message" cols="30" rows="10" class="form-control"
			placeholder="Mensagem" required></textarea>
		</div>
	</div>
	<div class="form-group">
		<input id="submit" name="submit" type="submit" value="Envie sua mensagem" 
		class="btn btn-primary">
	</div>

</form>

Aqui está meu codigo do PHPMailer:

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require_once 'vendor/autoload.php';

if (isset($_POST) && !empty($_POST)){
try {
	$mail = new PHPMailer();
	//Server settings
	$mail->SMTPDebug = 0;
	$mail->isSMTP();
	$mail->Host = 'smtp.gmail.com';
	$mail->SMTPAuth = true;
	$mail->Username = 'contatosites00@gmail.com';
	$mail->Password = '*************';
	$mail->SMTPSecure = 'tls';
	$mail->Port = 587;

	//Recipients
	$mail->setFrom('lvt.leonardo@gmail.com', 'Leo');
	$mail->addAddress('lvt.leonardo@gmail.com', 'Leo');

	$mensagem = "<strong>Contato site</strong><br><br>";
	$mensagem .= "<strong>Nome:</strong> " . $_POST['name'] . "<br>";
	$mensagem .= "<strong>E-mail:</strong> " . $_POST['email'] . "<br>";
	$mensagem .= "<strong>Mensagem: </strong> " . $_POST['message'] . "<br>";

	//Content
	$mail->isHTML(true);
	$mail->Subject = $_POST['subject'];
	$mail->Body    = nl2br($mensagem);
	//$mail->AltBody = $mensagem;

	if($mail->send()){
		$mail->ClearAllRecipients();
		echo json_encode(array('status' => 'OK', 'mensagem' => 'E-mail enviado com sucesso!'));
		header('Location: /agradecimentos.php');
	}else{
		$mail->ClearAllRecipients();
		echo json_encode(array('status' => 'ERRO', 'mensagem' => $mail->ErrorInfo));
		header('Location: /error.php');
	}

} catch (Exception $e) {
	$mail->ClearAllRecipients();
	echo json_encode(array('status' => 'ERRO', 'mensagem' => $mail->ErrorInfo));
	header('Location: /error.php');

}
}

Eu recebo a mensagem assim:

Contato site

  • Nome:
  • E-mail:
  • Mensagem: (aqui eu recebo o que escrevo no input mensagem)

Porem, o que digito no Nome, e-mail e Assunto eu não recebo, ele aparece em branco.

Galera, me desculpe a desatenção. Não coloquei a propriedade name=" ".

Desculpe e obrigado à todos.

Nunca coloque a senha nas suas duvidas, vou editar e retirar …

1 curtida