Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xjeehx

Formulário de contato PHP não envia os dados

Recommended Posts

Bom dia, talvez seja simples mas eu não mexo com php então estou meio perdida

Criei uma página HTML com um formulário, e depois usei uma página php para que os dados do dormulário fossem enviados para o meu e-mail

Quando eu faço o teste, chega o e-mail com o assunto correto porem sem sem nenhum dado.

Ex: nome:

email:

telefone1:

telefone2:

mensagem:

Segue abaixo o PHP e o HTML

PHP

<?php
header('Content-type: application/json');
$status = array(
'type'=>'success',
'message'=>'Agradecemos o seu contato, iremos retornar o mais breve possível.'
);

$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone1 =$_POST['telefone1'];
$telefone2 = $_POST['telefone2'];
$mensagem =$_POST['mensagem'];

$subject = 'Página de Contato - Equilíbrio Benefícios';
$email_from = $email;
$email_to = 'comunicacao@equilibriobeneficios.com.br';


$body = 'Nome: ' . $nome . "\n" . 'Email: ' . $email . "\n" . 'Telefone 1: ' . $telefone1 . "\n" . 'Telefone 2: ' . $telefone2 . "\n" . 'Mensagem: ' . $mensagem;

$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');

echo json_encode($status);
die;
?>

HTML

<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="enviacontato.php">
<div class="col-sm-5 col-sm-offset-1">
<div class="form-group">
<label>Nome *</label>
<input type="text" name="nome" class="form-control" required>
</div>
<div class="form-group">
<label>Email *</label>
<input type="email" name="email" class="form-control" required>
</div>
<div class="form-group">
<label>Telefone 1*</label>
<input type="tel" name="telefone1" class="form-control" required>
</div>
<div class="form-group">
<label>Telefone 2</label>
<input type="tel" name="telefone2" class="form-control">
</div>
</div>
<div class="col-sm-5">
<div class="form-group">
<label>Mensagem</label>
<textarea name="mensagem" id="message" class="form-control" rows="8"></textarea>
</div>
<div class="form-group">
<button type="submit" name="submit" class="btn btn-primary btn-lg" required="required">Enviar</button>
</div>
</div>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente a parte do PHP está ok, você está enviando esse formulário com ajax ou o submit é feito apenas com HTML?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparentemente a parte do PHP está ok, você está enviando esse formulário com ajax ou o submit é feito apenas com HTML?

Estou usando só esses dois mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou usando só esses dois mesmo

Analisando o seu script fica claro que ele está usando um JS para disparar o post, é só ver que ele retorna um json como resposta... veja com o firebug (f12) o que está sendo enviando de fato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Analisando o seu script fica claro que ele está usando um JS para disparar o post, é só ver que ele retorna um json como resposta... veja com o firebug (f12) o que está sendo enviando de fato.

Teria alguma dica para substituir o JS que ele está usando? Eu tentei linkar os JS na página HTML mas ainda assim não funcionou. Não entendi mt bem o esquema do firebug tbm.

Teria alguma sugestão para alterar o código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria alguma dica para substituir o JS que ele está usando? Eu tentei linkar os JS na página HTML mas ainda assim não funcionou. Não entendi mt bem o esquema do firebug tbm.

Teria alguma sugestão para alterar o código?

Programação não funciona dessa forma, tem que analisar o que está ocorrendo no script para então achar a solução, não dá pra "adivinhar" o que deveria ocorrer, para então te mandar um um JS e tudo voltar a funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Programação não funciona dessa forma, tem que analisar o que está ocorrendo no script para então achar a solução, não dá pra "adivinhar" o que deveria ocorrer, para então te mandar um um JS e tudo voltar a funcionar.

Acho que era disso que você estava falando

var form = $('#main-contact-form');
	form.submit(function(event){
		event.preventDefault();
		var form_status = $('<div class="form_status"></div>');
		$.ajax({
			url: $(this).attr('action'),

			beforeSend: function(){
				form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );
			}
		}).done(function(data){
			form_status.html('<p class="text-success">' + data.message + '</p>').delay(3000).fadeOut();
		});
	});

Compartilhar este post


Link para o post
Compartilhar em outros sites

var form = $('#main-contact-form');

form.submit(function(event){

event.preventDefault();

var form_status = $('<div class="form_status"></div>');

$.ajax({

type: "POST",

url: $(this).attr('action'),

data: $("#main-contact-form *").serialize(),

beforeSend: function(){

form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );

}

}).done(function(data){

form_status.html('<p class="text-success">' + data.message + '</p>').delay(3000).fadeOut();

});

});

Compartilhar este post


Link para o post
Compartilhar em outros sites
var form = $('#main-contact-form');
form.submit(function(event){
event.preventDefault();
var form_status = $('<div class="form_status"></div>');
$.ajax({
            type: "POST",
url: $(this).attr('action'),
            data: $("#main-contact-form *").serialize(),
beforeSend: function(){
form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );
}
}).done(function(data){
form_status.html('<p class="text-success">' + data.message + '</p>').delay(3000).fadeOut();
});
});

Fazendo isso eu não recebo mais o e-mail

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem que debugar, ver se não ficou algum erro de sintaxe e etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei fazer outro formulário sem ajax, pois tentei de tudo e nada funcionava.

O outro php que fiz continua com o mesmo problema de não enviar os dados para o email

HTML

<form class="contact-form" method="post" action="enviacontato.php">
                    <div class="col-sm-5 col-sm-offset-1">
                        <div class="form-group">
                            <label>Nome *</label>
                            <input type="text" name="nome" class="form-control" required>
                        </div>
                        <div class="form-group">
                            <label>Email *</label>
                            <input type="email" name="email" class="form-control" required>
                        </div>
                        <div class="form-group">
                            <label>Telefone 1*</label>
                            <input type="tel" name='telefone1' class="form-control" required>
                        </div>
                        <div class="form-group">
                            <label>Telefone 2</label>
                            <input type="tel" name="telefone2" class="form-control">
                        </div>                        
                    </div>
                    <div class="col-sm-5">
                        <div class="form-group">
                            <label>Mensagem</label>
                            <textarea name="mensagem" id="message" class="form-control" rows="8"></textarea>
                        </div>                        
                        <div class="form-group">
                            <button type="submit" name="submit" class="btn btn-primary btn-lg" required="required" formmethod="post">Enviar</button>
                        </div>
                    </div>
                </form>

PHP

<?php
   
   $getparam = filter_input_array(INPUT_POST, FILTER_DEFAULT);
   
	$nome = $GetParam['nome'];
	$email  = $GetParam['email'];
	$telefone1 = $GetParam['telefone1'];
	$telefone2 = $GetParam['telefone2'];
	$mensagem = $GetParam['mensagem'];

	$email_remetente = "comunicacao@equilibriobeneficios.com.br";
	$email_destinatatio = "comunicacao@equilibriobeneficios.com.br";
	$email_reply = "($email)";
	
	$email_assunto = "Página Contato - Equilíbrio Benefícios";
	$email_conteudo = "Nome: ($nome)";
	$email_conteudo .= "Email: ($email)";
	$email_conteudo .= "Telefone1: ($telefone1)";
	$email_conteudo .= "Telefone2: ($telefone2)";
	$email_conteudo .= "Mensagem: ($mensagem)";
	$HeaderArraway = array("from: $email_remetente",
		"Reply-to: $email_reply",
		"Subject: $email_assunto",
		"Return-Path: $email_remetente",
		"MIME-Version = 1.0",
		"X-Priority: 3",
		"Content-Type: text/html; charset=UTF-8"
		);
	$email_headers = implode("\n", $HeaderArraway);
	
	if (mail($email_destinatatio, $email_assunto, $email_conteudo, $email_headers)){
		?>
		<p>Sua mensagem foi enviada, entraremos em contato o mais breve possível.</p>
        
        <?php
	}else{
		?>
		<p>Desculpe, sua mensagem não foi enviada. Tente novamente..</p>
        <?php
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites
$getparam = filter_input_array(INPUT_POST, FILTER_DEFAULT);

    $nome = $GetParam['nome'];

$getparam e $GetParam são duas coisas distintas...

Compartilhar este post


Link para o post
Compartilhar em outros sites
$getparam = filter_input_array(INPUT_POST, FILTER_DEFAULT);

    $nome = $GetParam['nome'];

$getparam e $GetParam são duas coisas distintas...

RESOLVEU, obrigada pela ajuda e desculpa a ignorância com php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.