Formulário de contato PHP envia e-mail, mas os campos (input) vazios.

Tenho um formulário de contato que usa PHP e AJAX, ele envia o e-mail, mas os campos (input) do formulário não são enviados. Usei as instruções da Umbler sobre como enviar usando o comando mail(), mas mesmo assim não funciona. Já encontrei alguns tópicos idênticos na pesquisa do google, mas nada funcionou. Será que pode ser alguma falha na configuração do servidor PHP da Umbler??
Preciso de ajuda urgente.

Segue os códigos:

// Formulário HTML

Send Now

// PHP

<?php $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $myEmail = "contato@arbidsofts.com"; $subject = "Mensagem do Site Arbidsofts"; $emailTo = "gestor@arbidsofts.net"; $headers = "From: $myEmail\r\n"; $headers .= "Reply-To: $email\r\n"; $corpo = "Formulário enviado\n"; $corpo .= "Nome: " . $name . "\n"; $corpo .= "Email: " . $email . "\n"; $corpo .= "Mensagem: " . $message . "\n"; mail($emailTo, $subject, $corpo, $headers); ?>

// AJAX

var form = $('#main-contact-form');
form.submit(function(event){
	event.preventDefault();
	var name = $('input#name').val();
	var email = $('input#email').val();
	var message = $('textarea#message').val();
	
	var form_status = $('<div class="form_status"></div>');
	$.ajax({
		url: $(this).attr('action'),
			type: "POST",
			data: {
				name: name,
				email: email,
				message: message,
			},
			cache: false,

		beforeSend: function(){
			form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Enviando email...</p>').fadeIn() );
		}
	}).done(function(data){
		form_status.html('<p class="text-success">Obrigado! Entraremos em contato.</p>').delay(3000).fadeOut();
			$('#main-contact-form').trigger("reset");
	});
});

// Fim dos códigos

Opa, tudo bem?

Copiei os códigos que você forneceu e tentei reproduzir o erro, porém sem sucesso, todos os e-mails foram enviados certinhos.

Somente com essas informações, infelizmente, não consigo te propor uma solução, mas consigo tentar te ajudar a achar o problema.

Seria interessante se você pudesse adicionar a seguinte linha de código dentro do arquivo que contém o mail():

var_dump($_POST);

E depois mudar isso no seu ajax.done():

}).done(function(data){
form_status.html(‘

Obrigado! Entraremos em contato.

’).delay(3000).fadeOut();
$(’#main-contact-form’).trigger(“reset”);
 console.log(data);

});

Desse jeito será retornado todos os dados que estão sendo enviados via post e retornará no console do navegador. Caso retorne algo vazio, provavelmente temos um problema na hora de enviar para o PHP e caso retorne os dados, provavelmente algo no PHP está errado.

Recomendo também que, caso seja possível, entre em contato com o suporte via chat, através do seu painel, assim conseguimos te ajudar mais!

Precisando de algo, é só chamar. :blush:

1 curtida