Jump to content
gersonraul

[Resolvido] FORMULÁRIO CONTATO

Recommended Posts

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.

Share this post


Link to post
Share on other sites

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

isso aqui

<script src="envia_dados.php"></script>

<script src="envia_dados.php"></script> 

apenas esta jogando o codigo na sua pagina, para que a informações sejam submetidas você precisa colocalas dentro da tag form

<form action="enviar_dados.php" enctype="multipart/form-data" method="post">

 

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

@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

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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>

Share this post


Link to post
Share on other sites

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.

 

<?php
if(isset($mensagemRetorno)){
echo $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 pressionar CTRL+U e ver o código fonte da página.

 

Você vai precisar desses arquivos: PHPMailer. 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,

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.

print.jpg

Edited by gersonraul
Acréscimo de conteúdo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By leandrodesouza14
      Tenho uma duvida.
       
      Estou recebendo dados de um formulário HTML através do método POST. Um desses dados provem de um campo Select com diversos Options.
       
      Eu vou inserir os dados recebidos dos diversos imputs em varias tabelas, qual das tabelas vai depender do que o usuário selecionar no Select.
       
      Por exemplo: Se a pessoa selecionar BMW no Select, os dados do restante do formulário devem ser inseridos na tabela BMW. / Se a pessoa selecionar Fiat no Select, os dados do restante do formulário devem ser inseridos na tabela Fiat.
       
      O codigo que desenvolvi ate agora foi esse:
       
      <form action="cadastrodeveiculo.php" method="post" name="cadastroveiculo"> <p> Fabricante: <select name="marca"> <option value="audi" >Audi</option> <option value="bmw">BMW</option> <option value="chevrolet">Chevrolet</option> <option value="citroen">Citroen</option> <option value="fiat">Fiat</option> <option value="ford">Ford</option> <option value="hyundai">Hyundai</option> <option value="honda">Honda</option> <option value="jeep">Jeep</option> <option value="mb">Mercedes-Benz</option> <option value="mitsubishi">Mitsubishi</option> <option value="nissan">Nissan</option> <option value="peugeot">Peugeot</option> <option value="renault">Renault</option> <option value="toyota">Toyota</option> <option value="volkswagen">Volkswagem</option> </select> Modelo: <input type="text" id="modelo" name="modelo" maxlength="50"> Versao: <input type="text" id="versao" name="versao" maxlength="100"> Ano: <input type="text" id="ano" name="ano" maxlength="12"> Link: <input type="text" id="link" name="link" maxlength="300"> </p> <input class="submit" type="submit" name="cadastrar" value="Cadastrar"> </form> O codigo PHP, da pagina cadastroveiculo.php e o seguinte:
       
      <?php $conn = mysqli_connect("localhost", "leandro", "123", "afxveiculos"); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; $tabela = $_POST['marca']; $modelo = $_POST['modelo']; $versao = $_POST['versao']; $ano = $_POST['ano']; $link = $_POST['link']; $sql = "INSERT INTO (modelo, versao, ano, link) VALUES ('$modelo', '$versao', '$ano', '$link')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } mysqli_close($conn); header("location: cadastroesquema.html"); ?> Deixei o Insert Into vazio pois não sei que colocar la.
       
      Obrigado galera!
    • By andrelimaverde
      Pessoal desde já agradeço a todos, e vamos lá.
      Primeiro esclareço que meu conhecimento em PHP é básico e em MYSQL praticamente nulo...
      Meu objetivo é: Salvar dados do formulário (3 páginas) no mesmo ID (mesma linha) do banco de dados.
      Tenho:
      <!-- PÁGINA INDEX.PHP --> <?php session_start(); ?> <html> <form method="POST" action="1.php"> <input type="text" name="namenome" placeholder="Nome"> <input type="text" name="namesobrenome" placeholder="Sobrenome"> <input type="radio" name="radio" value="Masculino"> <input type="radio" name="radio" value="Feminino"> <input type="submit" name="namebtn" value="Próximo Passo"> </form> </html> E assim são as outras duas páginas, exemplificando, muito simples...
      No Index o FORM tem action="1.php" 
      Na Pagina2 o FORM tem action="2.php" e assim sucessivamente.
       
      1.php funcionando perfeitamente:
      <?php session_start(); include_once 'conexao.php'; //conexao.php somente faz a conexão com banco de dados, define as credenciais e atrubi a variável $conn //$conn = new PDO('mysql:host=' . HOST . ';dbname=' . DBNAME . ';', USER, PASS); $btn = filter_input(INPUT_POST, 'namebtn', FILTER_SANITIZE_STRING); if($btn){ //Recebe os dados do form $nom = filter_input(INPUT_POST, 'namenome', FILTER_SANITIZE_STRING); $sob = filter_input(INPUT_POST, 'namesobrenome', FILTER_SANITIZE_STRING); $rad = filter_input(INPUT_POST, 'radio', FILTER_SANITIZE_STRING); //Insere os dados no banco $get_data = "INSERT INTO info_tabela (nome, sobrenome, sexo) VALUES (:namenome, :namesobrenome, :radio)"; $insert_data = $conn->prepare($get_data); $insert_data->bindParam(':namenome', $nom); $insert_data->bindParam(':namesobrenome', $sob); $insert_data->bindParam(':radio', $rad); if($insert_data->execute()){ header("Location:pagina2.php"); //Se enviar corretamente redireciona para segunda página }else{ $_SESSION['msg'] = "<p style='color:tomato;background:#fff;'>Não foi possível enviar suas informações, verifique e tente novamente.</p>"; header("Location:index.php"); //Se não apresenta o erro } }else{ $_SESSION['msg'] = "<p style='color:tomato;'>Não foi possível enviar suas informações, verifique e tente novamente.</p>"; header("Location:index.php"); } Até ai tudo bem, insere corretamente os dados nas respectivas colunas da tabela ID=1, NOME= 'nome', SOBRENOME= 'sobrenome', SEXO= 'sexo'.
      No Banco de Dados ainda temos as colunas a serem preenchidas no mesmo ID(mesma linha) --> CIDADE= ' ', ENDEREÇO= ' ', CEP= ' ', 
      Que referem-se à pagina2.php:
      <!-- PÁGINA PAGINA2.PHP --> <?php session_start(); ?> <html> <form method="POST" action="2.php"> <!-- ACTION 2.PHP RESPECTIVAMENTE --> <input type="text" name="namecidade" placeholder="Cidade"> <input type="text" name="nameendereco" placeholder="Endereço"> <input type="tex" name="namecep" placeholder="Cep"> <input type="submit" name="namebtn" value="Próximo Passo"> </form> </html> O problema, é que ao enviar o formulário com action="2.php" cujo arquivo possui o mesmo código que o "1.php" mudando somente os dados recebidos,
      No Banco de Dados é criado um novo ID(2) ou seja, uma nova linha, com os dados atuais nas colunas (cidade, endereço, cep) preenchidos, e as colunas anteriores (nome, sobrenome, sexo) vazias...
       
      Pessoal esta é a minha dúvida, como resolver, salvar todos os dados num mesmo id, mesma linha. O código do arquivo 2.php é o mesmo pois não faço ideia de como implementar isso, como em soluções anteriores tais dados costumava enviar com PhpMailer para e-mail então não entendo de MYSQL.
       
      Código simplificado e resumido ao máximo...
      Obrigado.
    • By douglas79
      Boa noite pessoal,
      Estou seguindo um livro em PHP,  existe um campo pra inserir a imagem de um determinado produto. Fiz um formulário como teste e juntei uns códigos que achei na internet e até está dando certo, os dados estão indo pro BD. Mas tenho duas dúvidas e queria a ajuda do pessoal. Uma é colocar a sequencia nas fotos quando cadastrados (exemplo foto01, foto02 .... foto n) e ao inserir a imagem que é somente pode imagem com a suas extensões e uma mensagem informando.

      Eis o código:
       
      <?php
      include "conn.php";
      $nome = $_POST['nome'];
      $email = $_POST['email'];
      $foto = $_FILES['foto'];
      $pasta = "img/";

      $sql = "INSERT INTO cad (nome,email,foto) VALUES ('".$nome."','".$email."','".$_FILES['foto']['name']."')";
      mysql_query($sql,$con);
      $nome_final = time(). '.jpg';
      if (move_uploaded_file($foto['tmp_name'], $pasta . $nome_final)) {
          
          header("location:index.php");
      } else {
          echo "Erro";
      }
      ?>
      Aguardo as ajudas, desde já obrigado! []'s
    • By Helinho Coelho
      Olá pessoal,
       
      Não estou conseguindo passar o valor de uma simples variável de um formulário. Alguém pode me ajudar a entender o que estou fazendo de errado?
       
      // FORMULÁRIO <form id="form1" method="POST"> <input id="curso" type="text" value="<?php echo $curso; ?>" > <input type="submit" value="ATUALIZAR"> </form> // AJAX $('#form1').on('submit', function() { $.ajax({ url: 'admin.php?page=my_update', type: 'POST', data: 'curso=' + $('#curso').val(), success: function(data) { window.location.replace("admin.php?page=my_home"); }, }); }); // RETORNO PHP (my_home) $novoNome = false; if(isset($_POST['curso'])){ $novoNome = $_POST['curso']; echo "NOVO NOME DO CURSO: " . $novoNome; } print_r($_POST); // Tá retornando vazio, ou seja, o valor da variável 'curso' não está chegando.  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.