Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, sem enrolações, vamos direto ao meu problema. Pois bem, já faz um tempo que trabalho em um fábrica de doces, e resolvemos criar um site, eu sempre gostei de informática, mas nunca tive oportunidade de me aprofundar com estudos, tudo que sei é somente pesquisando e seguindo tutoriais... Enfim, meu problema é o seguinte, eu não recebo no e-mail com os dados do formulário quando algum cliente preenche os campos e envia para contato. Eu só gostaria de saber se há algum erro (provavelmente haja), e o que deve ser modificado para que o script funcione corretamente. Segue abaixo o código.
No HTML temos o seguinte.
...
<script src="envia_dados.php"></script>
...
<div class="contact-form">
<p class="full-row">
<form id="formulario" name="formulario" method="post" onsubmit="return validar(this);" action="envia_dados.php">
<p class="full-row">
<label class="nome">Nome:
<input type="text" name="nome" id="nome">
</label>
</p>
<p class="full-row">
<label class="telefone">Telefone:
<input type="text" name="telefone" id="telefone" maxlength="15"></label>
</p>
<p class="full-row">
<label class="email">E-mail:
<input type="text" name="email" id="email"></label>
</p>
<p class="full-row">
<label class="cidade">Cidade:
<input type="text" name="cidade" id="cidade"></label>
</p>
<p class="full-row">
<label class="assunto">Assunto:
<input type="text" name="assunto" id="assunto"></label>
</p>
<p class="full-row">
<label class="mensagem">Mensagem:
<textarea name="sugestao" id="textarea" rows="3"></textarea></label>
</p>
<p class="full-row">
<input class="mainBtn" type="submit" name="submit" value="Enviar">
<input class="mainBtn" type="reset" name="submit2" value="Limpar">
</p></form>
</div>
**Agora o "envia_dados.php"**
<?php
// email que chegará as informações recebidas
$mail = "gerson@docespirangucu.com";
$nome = $_POST["nome"];//campo nome reconhecido
$email = $_POST["email"];//campo e-mail reconhecido
$telefone = $_POST["telefone"];// campo telefone reconhecido
$cidade = $_POST["cidade"];//campo cidade reconhecido
$assunto = $_POST["assunto"];//campo assunto reconhecido
$sugestao = $_POST["sugestao"];//campo sugestão reconhecido
$mensagem .= "Mensagem enviada pelo visitante: $nome\n";// frase que aparecerá no topo da mensagem
$mensagem .= "E-mail: $email\n";//email da pessoa
$mensagem .= "Telefone: $telefone\n";//Telefone da pessoa
$mensagem .= "Cidade: $cidade\n";//cidade da pessoa
$mensagem .= "Assunto: $assunto\n";//estado da pessoa
$mensagem .= "Mensagem: $sugestao";// mensagem (sugestão) da pessoa
// finaliza o código do $mensagem e do $_POST e inicia o envio da mensagem ao WEBMASTER!
@mail($mail, $assunto, $mensagem, "FROM:$nome<$email>"); //essa linha manda o email!
?>
<script>
alert("Sua mensagem foi enviada com sucesso!") ;
</script>
<?PHP
header("Refresh: 0; index.html");
?>
Pois bem, se alguém tiver uma luz, já tentei vários tutoriais, mas realmente não sei o que acontece. Desde já, muito obrigado.>
4 horas atrás, gersonraul disse:
<form id="formulario" name="formulario" method="post" onsubmit="return validar(this);" action="envia_dados.php">
Elas já estão na tag Form, ou do jeito que fiz está errado? Obrigado.até ai não, esta certo, esse trecho de JS, você pretende fazer a validação dos dados?
Aconselho que primeiro, veja se todas as variaveis estão chegando preenchidas ao envia_dados.php e depois você usa a função pra enviar email.
recomendo você usar o PhpMailer,
da uma lida ae e vê se te ajuda
http://blog.thiagobelem.net/enviar-e-mails-pelo-php-usando-o-phpmailer
@gersonraul
Primeiramente nem precisa disso:
>
12 horas atrás, gersonraul disse:
<script src="envia_dados.php"></script>
Também pode modificar o form
>
12 horas atrás, gersonraul disse:
<form id="formulario" name="formulario" method="post" onsubmit="return validar(this);" action="envia_dados.php">
Use assim:
>
Citar
<form method="post" action="envia_dados.php">
**ID** não é necessário no seu caso, o mesmo vale para o **name**. Isso serve apenas para tratamentos através de funções ou busca de dados específicos do form. O que no seu caso apenas está enviando os dados dos inputs para um arquivo PHP
onsubmit não se aplica, a não ser que o form seja validado por função javascript
Você não precisa de **enctype **pois não está enviando arquivo para o servidor.
Para enviar e-mails utilize-se do PhpMailer
Qualquer coisa veja isso:
Assisata o vídeo 50, 51 e 52 que você poderá facilmente enviar emails com o phpmailer
[https://www.youtube.com/watch?v=v4BRrPQrl3k&index=50&list=PLC60WB-CP2vqZNJXj6XWakU7tEDHb0RQ2](https://www.youtube.com/watch?v=v4BRrPQrl3k&index=50&list=PLC60WB-CP2vqZNJXj6XWakU7tEDHb0RQ2)Boa tarde, olha, assisti as vídeo-aulas, mas achei um pouco complicado, e no vídeo também ele também está ensinando a fazer coisas de senha e login, que não é meu caso, meu caso é somente enviar uma mensagem simples. Fazendo alguns testes aqui, observei o seguinte, se eu digitar o e-mail "asdasd@asdasd.com" eu recebo o e-mail do "cliente" sem problemas, com toda a mensagem e campos ok, agora se eu colocar um e-mail "válido" eu não recebo a mensagem... O será que pode ser isso? Se puderem verificar, o site está hospedado em: http://docespirangucu.com/finalv2/
Se puderem me ajudar, estou montando um site em cima de um template... Obrigado, e desculpem a ignorância.
Amigo como lhe falei, tente usar o Php Mailer ou faça um estudo masi profundo da função mail, nativa do php, veja o tutotial que lhe mandei, e sim, você terar de configurar o SMTP ou Pop3 para o envio desse email
Boa tarde, obrigado a todos que se propuseram a me ajudar. Consegui resolver o problema utilizando o PHP Mailer, foi um pouco complicado, mas deu certo. O tópico pode ser encerrado.
Mais uma vez, grato.
>
Em 25/05/2018 at 00:42, icarof disse:
Amigo como lhe falei, tente usar o Php Mailer ou faça um estudo masi profundo da função mail, nativa do php, veja o tutotial que lhe mandei, e sim, você terar de configurar o SMTP ou Pop3 para o envio desse email
>
Em 28/05/2018 at 15:21, gersonraul disse:
Boa tarde, obrigado a todos que se propuseram a me ajudar. Consegui resolver o problema utilizando o PHP Mailer, foi um pouco complicado, mas deu certo. O tópico pode ser encerrado.
Mais uma vez, grato.
Bom Dia Gerson!
Estou dois problemas e os dois você solucionou no seu site ( http://docespirangucu.com/finalv2/ ).
Primeiro Problema: Formulário de contato - Não consegui colocar para funcionar
Segundo Problema: Localização Google maps - O meu funciona no PC, mas na hospedagem da erro: " Ops! Deu algo errado..."
Se puder me da uma luz...
Segue abaixo o meu HTML do formulario
<div class="col-sm-8">
<h4>Formulário de contato</h4>
<div class="status alert alert-success" style="display: none"></div>
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
<div class="row">
<div class="col-sm-5">
<div class="form-group">
<input type="text" class="form-control" required="required" placeholder="Nome">
</div>
<div class="form-group">
<input type="text" class="form-control" required="required" placeholder="Sobrenome">
</div>
<div class="form-group">
<input type="text" class="form-control" required="required" placeholder="E-mail">
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-lg">Enviar</button>
</div>
</div>
<div class="col-sm-7">
<textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Mensagem"></textarea>
</div>
</div>
</form>
</div>Bom dia Jaime,
Vou postar abaixo os códigos que estou utilizando e que deram certo. Primeiramente, minha pagina principal é index.php, sendo assim não criei um arquivo php seraparado, está tudo dentro do index.
Vamos lá,
No começo do arquivo, antes de tudo, cloque esse código, altere o que for necessário.
<?php
/* apenas dispara o envio do formulário caso exista $_POST['enviarFormulario']*/
if (isset($_POST['enviarFormulario'])){
/ INÍCIO - DADOS A SEREM ALTERADOS DE ACORDO COM SUAS CONFIGURAÇÕES DE E-MAIL /
$remetenteNome = $_POST['nomeremetente'];
$enviaFormularioParaNome = 'Seu nome';
$enviaFormularioParaEmail = 'seu e-mail';
$caixaPostalServidorNome = 'Mesangem do visitante: '.$remetenteNome;
$caixaPostalServidorEmail = 'seu e-mail';
$caixaPostalServidorSenha = 'senha do seu e-mail';
/ FIM - DADOS A SEREM ALTERADOS DE ACORDO COM SUAS CONFIGURAÇÕES DE E-MAIL /
/ abaixo as veriaveis principais, que devem conter em seu formulario/
$remetenteEmail = $_POST['emailremetente'];
$remetenteTelefone = $_POST['telefoneremetente'];
$remetenteCidade = $_POST['cidaderemetente'];
$assunto = $_POST['assuntoremetente'];
$mensagem = $_POST['mensagemremetente'];
$mensagemConcatenada = 'Formulário gerado via website'.'<br/><br/>';
$mensagemConcatenada .= '-------------------------------<br/><br/>';
$mensagemConcatenada .= 'Nome: '.$remetenteNome.'<br/>';
$mensagemConcatenada .= 'E-mail: '.$remetenteEmail.'<br/>';
$mensagemConcatenada .= 'Telefone: '.$remetenteTelefone.'<br/>';
$mensagemConcatenada .= 'Cidade: '.$remetenteCidade.'<br/>';
$mensagemConcatenada .= 'Assunto: '.$assunto.'<br/><br/>';
$mensagemConcatenada .= '-------------------------------<br/><br/>';
$mensagemConcatenada .= 'Mensagem: "'.$mensagem.'"<br/>';
/********************************* A PARTIR DAQUI NAO ALTERAR **********************************/
require_once('PHPMailer/PHPMailerAutoload.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Charset = 'utf8_decode()';
$mail->Host = 'smtp.'.substr(strstr($caixaPostalServidorEmail, '@'), 1);
$mail->Port = '587';
$mail->Username = $caixaPostalServidorEmail;
$mail->Password = $caixaPostalServidorSenha;
$mail->From = $caixaPostalServidorEmail;
$mail->FromName = utf8_decode($caixaPostalServidorNome);
$mail->IsHTML(true);
$mail->Subject = utf8_decode($assunto);
$mail->Body = utf8_decode($mensagemConcatenada);
$mail->AddAddress($enviaFormularioParaEmail,utf8_decode($enviaFormularioParaNome));
if(!$mail->Send()){
$mensagemRetorno = 'Erro ao enviar formulário: '. print($mail->ErrorInfo);
}else{
$mensagemRetorno = 'Formulário enviado com sucesso!';
}
}
?>
E depois na parte dos contato utilizo o seguinte código.
<div class="contact-form">
<p class="full-row">
<form id="formulario" name="formulario" method="post" onsubmit="return validar(this);" action="">
<p class="full-row">
<label class="nome">Nome:
<input type="text" name="nomeremetente" id="nomeremetente">
</label>
</p>
<p class="full-row">
<label class="telefone">Telefone:
<input type="tel" name="telefoneremetente" id="telefoneremetente" maxlength="15"></label>
</p>
<p class="full-row">
<label class="email">E-mail:
<input type="email" name="emailremetente" id="emailremetente"></label>
</p>
<p class="full-row">
<label class="cidade">Cidade/UF:
<input type="text" name="cidaderemetente" id="cidaderemetente"></label>
</p>
<p class="full-row">
<label class="assunto">Assunto:
<input type="text" name="assuntoremetente" id="assuntoremetente" maxlength="30"></label>
</p>
<p class="full-row">
<label class="mensagem">Mensagem:
<textarea name="mensagemremetente" id="mensagemremetente" rows="5"></textarea></label>
</p>
<p class="full-row">
<input class="mainBtn" type="submit" name="enviarFormulario" value="enviar" onclick="confirmBox()">
<input class="mainBtn" type="reset" name="submit2" value="Limpar">
</p></form>
Depois do formulário uso esse código para aparecer que a mensagem foi enviada com sucesso, ou não.
<?phpecho $mensagemRetorno;
}
?>
Sobre o formulário, assim está funcionando aqui pra mim, eu utilizo também alguns scripts para formatar e validar os campos preenchidos. Qualquer coisa você pode acessar nossa página [Doces Piranguçu](http://docespirangucu.com) pressionar CTRL+U e ver o código fonte da página.
Você vai precisar desses arquivos: [PHPMailer](https://mega.nz/#!gRsThABR). Você deve extrair ele junto com a página principal do seu site como na imagem em anexo.
Sobre o Google Maps, o meu fiz da seguinte forma,
Entre no [Maps](https://www.google.com.br/maps),
Selecione o local que já está cadastrado,
Clique em compartilhar,
Escolha incorporar um mapa,
Selecione o tamanho desejado,
Copie o código gerado que deverá começar com <iframe src=...
E por último cole esse código em seu site.

amigo, para a passagem dos dados você precisa de uma form
isso aqui