Ir para conteúdo

POWERED BY:

  • 0
Jack Oliveira

Problemas ao Enviar Formulário para E-mail e Php Ajax

Pergunta

Olá boa noite pessoal estou tendo problema ao para enviar formulário via e-mail e php

 

a página não é carregado e nem e enviada.

 

este é meu código html

 

						<form  method="post" action="" id="formulario" class="contact-form">
							<fieldset>
								<div class="form-group">
									<div class="col">
										<input  type="text" id="nome" name="nome" class="form-control" placeholder="Nome">
									</div>
									<div class="col">
										<input type="text" id="telefone" name="telefone" class="form-control" placeholder="Telefone">
									</div>	
									<div class="col">
										<input type="text" id="celular" name="celular" class="form-control" placeholder="Celular/WhatsApp">
									</div>									
									<div class="col">
										<input type="email" id="email" name="email" class="form-control" placeholder="E-mail">
									</div>
									<div class="col">
										<input type="text" id="endereco" name="endereco" class="form-control" placeholder="Endereço do Serviço">
									</div>
									<div class="col">
										<input type="text" id="assunto" name="assunto" class="form-control" placeholder="Assunto">
							        </div>
									<div class="col">
								<textarea  id="mensagem" name="mensagem"  class="form-control" placeholder="Serviços que deseja realizar"></textarea>
								
								<input type="submit" class="btn btn-primary" id="formulario"><i class="fa fa-chevron-circle-right"></i> Enviar</input>
									</div>							
									</div>										
								</div>
							</fieldset>
						</form>

Este é o Script ajax

    <script>
        $(document).ready(function () {
 
            $('#formulario').submit(function() {
                var dados = $('#formulario').serialize();
 
                $.ajax({
                    type : 'POST',
                    url  : 'email/envia_email.php',
                    data : dados,
                    dataType: 'json',
                    success :  function(response){
                        $('#mensagem').css('display', 'block')
                            .removeClass()
                            .addClass(response.tipo)
                            .html('')
                            .html('<p>' + response.mensagem + '</p>');
                    }
                });
 
                return false;
            });
        });
    </script>

Este é o arquivo enviar_email.php

 

<?php
require_once('../include/db.php');

$QueryPagina = DBRead('paginas_conteudo','*',"WHERE id='16'"); if (is_array($QueryPagina)) { foreach ($QueryPagina as $paginas1) { }}

header('Content-type: text/html; charset=utf-8');
 
// Conta de Email no servidor de hospedagem
define('SERVIDOR', ''.$paginas1['titulo5'].'');
 
// Para onde será enviado o contato
define('DESTINO', ''.$paginas1['titulo5'].'');
 
// Identifica o site que foi enviada a mensagem
define('SITE', ''.ConfigPainel('site_nome').'');

		if (isset($_POST)){
	        // Valida se foram preenchidos todos os campos
    if (empty($nome) || empty($telefone) || empty($celular) || empty($endereco) || empty($email) || empty($assunto) || empty($msg)){
        $array  = array('tipo' => 'alert alert-danger', 'mensagem' => 'Preencher todo os campos obrigatórios(*)!');
        echo json_encode($array);
    }else{    	
			$Adicionar = array(
		'nome' 			    => post('nome'),
		'telefone' 			=> post('telefone'),
		'celular' 			=> post('celular'),
		'endereco' 			=> post('endereco'),
		'email' 			=> post('email'),
		'assunto' 			=> post('assunto'),
		'mensagem' 			=> post('mensagem')
			);
			$Query = DBCreate('contato', $Adicionar);
		}
		}

 
        if (empty($assunto)):
            $assunto = "Contato enviado pelo site " . SITE;
        endif;
 
        // Monta a mensagem do email
        $mensagem = "Contato enviado pelo site ".SITE."\n";
        $mensagem .= "**********************************************************\n";
        $mensagem .= "Nome: ".$nome."\n";
		$mensagem .= "Telefone: ".$telefone."\n";
		$mensagem .= "Celular ou WhatsAPP: ".$celular."\n";
        $mensagem .= "E-mail do Contato: ".$email."\n";
        $mensagem .= "**********************************************************\n";
        $mensagem .= "Assunto: ".$assunto."\n";
		$mensagem .= "Data: ".$data."\n";
        $mensagem .= "**********************************************************\n";		
        $mensagem .= "Mensagem: \n".$msg."\n";
 
        // Envia o e-mail e captura o retorno
        $retorno = EnviaEmail(DESTINO, $assunto, $mensagem);
 
        // Conforme o retorno da função exibe a mensagem para o usuário
        if ($retorno):
            $array  = array('tipo' => 'alert alert-success', 'mensagem' => 'Sua mensagem foi enviada com sucesso!');
            echo json_encode($array);
        else:
            $array  = array('tipo' => 'alert alert-danger', 'mensagem' => 'Infelizmente houve um erro ao enviar sua mensagem!');
            echo json_encode($array);
        endif;
 
    endif;
endif;
 
// Função para envio de e-mail usando a função nativa do PHP mail()
function EnviaEmail($para, $assunto, $mensagem){
 
    $headers = "From: ".SERVIDOR."\n";
    $headers .= "Reply-To: $para\n";
    $headers .= "Subject: $assunto\n";
    $headers .= "Return-Path: ".SERVIDOR."\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "X-Priority: 3\n";
    $headers .= "Content-Type: text/html; charset=UTF-8\n";
 
    $retorno = mail($para, $assunto, nl2br($mensagem), $headers);
    return $retorno;
}

?>

Peguei o exemplo neste site aqui....

 

Desde já fico no aguardo 

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Toni Santos
      Saudações Kneon Nights!
       
      Gostaria de fazer minha contribuição pela boa vontade de todos que se disponibilizam, sem nenhum custo, a transmitir conhecimentos essenciais seja para a evolução ou ganha-pão de muitos que dependem deste universo de informações.
       
      Bom, o sisteminha na realidade surgiu quando ao futucar um script de validação encontrado na rede terminei, na cagada, criando outro melhor ainda. E agora ele está aqui para quem quiser utilizar.
       
      COMO FUNCIONA?
      1. A pessoa aperta o botão enviar sem preencher nada (gaiaata!). Só que aqui não mérmão aqui não entra nada, o sistema barra logo trote por:
      a) não enviar a mensagem (âââ, lógico!), porém, fazendo o primeiro campo (no caso do form abaixo o campo nome) do formulário ficar vermelho e informando através de uma mensagem vermelha que este campo precisa ser preenchido;
       
      2. Ao clicar no campo nome, este, volta a cor normal como se nada tivesse acontecido;
       
      EU: - O mesmo ocorre com os demais campos: ao preencher o campo nome e enviarem a mensagem, o campo seguinte fica vermelho, surge a mensagem vermelha informando que tal campo precisa ser preenchido e assim sucessivamente.

      FDP: - Brother, qualquer validador faria isso me conte uma novidade, onde entra a parada da inteligência aí?
       
      EU: - Calma jhow, relaxe, entra agora!
       
      3. Se a pessoa tentar preencher apenas um campo por exemplo mensagem ou email, AUTOMATICAMENTE o cliques que ela der nesses campos serão direcionados para o campo nome. O mesmo acontecerá caso o campo nome seja preenchido certinho e ela clica no campo mensagem, automaticamente o clique dela neste campo será direcionado para o campo email e assim sucessivamente.
       
      CONSIDERAÇÕES:
      Esta funcionalidade obriga a pessoa a preencher campo por campo, prendendo-a ao primeiro campo, ao segundo e assim sucessivamente EVITANDO que todo o formulário seja enviado incompleto.
       
      O FORMULÁRIO (HTML)
      Pode ser qualquer outro, basta apenas configurá-lo ao script.
       
      <form class="form" id="form1" action="(AQUI O ARQUIVO PHP QUE ENVIA)" method="POST"> <p class="name"> <input name="name" type="text" class="" placeholder="" id="name" onClick="return apagar()"/> </p> <p class="email"> <input name="email" type="text" class="" placeholder="" id="email" onClick="return apagar()" /> </p> <p class="text"> <textarea name="text" class="" placeholder="" id="comment" onClick="return apagar()" ></textarea> </p> <div class="submit"> <div id="msg"></div> <input type="submit" value="Enviar Mensagem" class="submit" onclick="return validar()" onSubmit="LimarCampo()"/> </div> </form> O SCRIPT (JS) <script type="text/javascript"> function validar() { var name = form1.name.value; if (name == "") { var cont = "Informe seu nome"; document.getElementById("msg").innerHTML = cont; form1.name.style.backgroundColor="#FFDAB9"; form1.name.style.color="#363636"; msg.style.color="#ff0000"; form1.name.focus(); return false; } var email = form1.email.value; if (email == "") { var cont = "Informe seu e-mail"; document.getElementById("msg").innerHTML = cont; form1.email.style.backgroundColor="#FFDAB9"; form1.email.style.color="#363636"; msg.style.color="#ff0000"; form1.email.focus(); return false; } var text = form1.text.value; if (text == "") { var cont = "Digite sua mensagem"; document.getElementById("msg").innerHTML = cont; form1.text.style.backgroundColor="#FFDAB9"; form1.text.style.color="#363636"; msg.style.color="#ff0000"; form1.text.focus(); return false; } } function apagar() { var name = form1.name.value; if (name == "") { var cont = ""; document.getElementById("msg").innerHTML = cont; form1.name.style.backgroundColor="#fbfbfb"; form1.name.style.color="#363636"; form1.name.focus(); return false; } var email = form1.email.value; if (email == "") { var cont = ""; document.getElementById("msg").innerHTML = cont; form1.email.style.backgroundColor="#fbfbfb"; form1.email.style.color="#363636"; form1.email.focus(); return false; } var text = form1.text.value; if (text == "") { var cont = ""; document.getElementById("msg").innerHTML = cont; form1.text.style.backgroundColor="#fbfbfb"; form1.text.style.color="#363636"; form1.text.focus(); return false; } } </script> <script type="text/javascript"> jQuery(document).ready(function(){ jQuery('#form1').submit(function(){ var dados = jQuery( this ).serialize(); jQuery.ajax({ type: "POST", url: "../(AQUI O ARQUIVO PHP QUE ENVIA)", data: dados, success: function envio() { var cont = "Mensagem enviada com sucesso"; document.getElementById("msg").innerHTML = cont; msg.style.color="#55A13C"; } }); return false; }); }); </script> Coloquei as cores para facilitar a identificação no script e possíveis alterações para outras necessidades. Lembrando que as mensagens e as cores dos campos são modificadas no script acima, não no css. Veja o exemplo em minha página http://bamboo.16mb.com/nossos-contatos
    • Por GuiiJC
      A página recebe via get o tipo de configuração que deve mostrar ao usuário: Edição, exclusão ou visualização.
      Edição e exclusão é apenas para quem criou aquela noticia. Visualização é pra quem está envolvida com ela.
      Até ai tudo bem, Usei o switch para verificar o tipo de configuração que o form devia tomar.
      Quando fiz a ação dos botões (edição: atualizar e voltar; exclusão: sim e não; visualização: voltar) e fui testar vi que não estavam sendo executadas as ações referentes a aquela configuração ou nem uma outra. Na edição ele me gera um link: ?%23=teste+metodo&f=ANALISTAS+E+DESENVOLVEDORES&usuario-grupo%5B%5D=7&usuario-grupo%5B%5D=2&usuario-grupo%5B%5D=5&usuario-grupo%5B%5D=6&atualizar=Atualizar+Dados após o nome da página. Ná exclusão e visualização ele pega o nome do botão e coloca o valor dle. ex: sim=Sim ;

      revisei o código e não encontrei nada de errado (ao menos não pra mim), alguém tem uma ideia de por que isso tá acontecendo e como resolver?
×

Informação importante

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