Ir para conteúdo

Arquivado

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

Afrânio Costa

Mensagem de sucesso abaixo do formulário

Recommended Posts

Pessoal,

Tenho um formulário onde o visitante do site pode indicar o site a um amigo.
Ao enviar ocorrem 2 coisas:

1) um deles é que no hotmail vai para spam e no outlook não chega. Só funciona no g-mail.

2) O outro é que eu queria que a mensagem de sucesso aparecesse abaixo do formulário, mas está sendo exibida em um alert.

Alguém pode me ajudar em ao menos uma dessas coisas? Não sou de php, por isso tive certa dificuldade.

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
1) um deles é que no hotmail vai para spam e no outlook não chega. Só funciona no g-mail.

Como o colega @geekcom indicou.

https://github.com/PHPMailer/PHPMailer

A lib ajuda bastante neste aspecto por utilizar padrões de SMTP autenticado etc etc etc.

Não precisa de muita configuração.

é só baixar jogar numa pasta qualquer do servidor e ir tentando acertar as configurações de sua hospedagem.

Melhor ainda é procurar um exemplo de utilização da biblioteca + sua hospedagem, as vezes o pessoal do suporte pode te auxiliar.

O outro é que eu queria que a mensagem de sucesso aparecesse abaixo do formulário, mas está sendo exibida em um alert.

Se retorna um alert, você deve encontrar o mesmo.

Não tem nada a ver com PHP e sim JavaScript.

Busque a mensagem de sucesso de envio e tente alterar.

para o exemplo abaixo:

//Antes 

document.getElementById('proximo-quadro').addEventListener('botao-email', function() {
	//Provavelmente tem um ajax....
	
	//Bloco de sucesso do ajax (Função em php externa q dispara o email)....
		alert('Mensagem enviada');
});


Ai ao invés do alert você pode alterar um texto na sua pagina criando o efeito que você deseja:

Ex:

innerHTML
Mantenho um repo de JS para iniciantes, com diversos exercicios e links externos, se quiser dar uma conferida ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o colega @geekcom indicou.

https://github.com/PHPMailer/PHPMailer

A lib ajuda bastante neste aspecto por utilizar padrões de SMTP autenticado etc etc etc.

Não precisa de muita configuração.

é só baixar jogar numa pasta qualquer do servidor e ir tentando acertar as configurações de sua hospedagem.

Melhor ainda é procurar um exemplo de utilização da biblioteca + sua hospedagem, as vezes o pessoal do suporte pode te auxiliar.

Se retorna um alert, você deve encontrar o mesmo.

Não tem nada a ver com PHP e sim JavaScript.

Busque a mensagem de sucesso de envio e tente alterar.

para o exemplo abaixo:

//Antes 

document.getElementById('proximo-quadro').addEventListener('botao-email', function() {
	//Provavelmente tem um ajax....
	
	//Bloco de sucesso do ajax (Função em php externa q dispara o email)....
		alert('Mensagem enviada');
});


Ai ao invés do alert você pode alterar um texto na sua pagina criando o efeito que você deseja:

Ex:

innerHTML
Mantenho um repo de JS para iniciantes, com diversos exercicios e links externos, se quiser dar uma conferida ;)

Acabou de ganhar uma estrela no seu repo. XD

Compartilhar este post


Link para o post
Compartilhar em outros sites

haha legal q curtiu @geekcom.

Se quiser fazer alteração ou criar uma issue de possíveis exercícios / tópicos sintase em casa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca o código que está usando para podermos ajudar.

Segue o código:

Primeiro o formulário

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.dominio.com.br'

</script>

<?php

exit;

}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não recomendo utilizar a função mail()

Seria interessante utilizar o PhpMailer.

Qual erro que deu?

Habilitou os erros, conforme as regras

ini_set('display_errors', true);
error_reporting(E_ALL);

http://forum.imasters.com.br/topic/542539-atencao-orientacoes-e-regras-do-forum-de-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por andreamari81
      Olá, tenho um site em html e o envio do formulário foi feito em php. Porém, mesmo com os campos obrigatórios do formulário, eu recebo emails em branco. Quando perguntei pra hospedagem o que poderia ser, eles me responderam que quando acessam a página pelo navegador www.meusite.com.br/enviar.php ele envia o formulário em branco.
      Existe alguma maneira de bloquear o acesso a essa pagina enviar.php para que não receba mais emails em branco?
      Não sei se ficou claro, porque sou totalmente leiga em php.
      Obrigada
    • Por Bruniinhass
      tenho um formulario simples com nome/email/telefone e um botão radio 
       
      <label>Quantidade de Pessoas</label> <input type="radio" id="quantidade" name="valor" value="Valor1">Até 50 pessoas <input type="radio" id="quantidade" name="valor" value="Valor2">De 51 a 180 pessoas <input type="radio" id="quantidade" name="valor" value="Valor3">Acima de 181 pessoas nesse botão, quero q quando a pessoa enviar o formulario vá um texto formatado e um link ao invés de escrever "valor1" "valor2" "valor3"
      pensei numa função java script mas não sei fazer mt certo
      alguem tem uma solução?
    • Por ergosum
      Olá pessoal!
       
      Estou desenvolvendo um site e nele há um formulário de contato para envio de e-mail em ".php". Ao testar o formulário, dá tudo certinho, o dono do site recebe o e-mail, mas quando ele responde o e-mail, a mensagem vai para ele mesmo e não para quem preencheu o formulário no site.
       
      Como resolver isso, de modo que ao clicar em responder (no Outlook) o e-mail vá para quem preencheu o formulário?
       
      O código que estou utilizando é esse:
       
      <?php
      function sendMail($para, $mensagem, $assunto)
      {
          require_once('class/smtp/SMTP.php');
          require_once('class/smtp/MAIL.php');
          $m = new MAIL;

          $smtp      = "smtp.abcd***.com.br";
          $usuario = "contatoviasite@abcd***.com.br";
          $senha      = "123456";
          $m = new MAIL; // initialize MAIL class
          $m->From($usuario); // set from address
          $m->AddTo($para); // add to address
          $m->Subject($assunto); // set subject
          $m->Html($mensagem); // set text message
          // connect to MTA server 'smtp.hostname.net' port '25' with authentication: 'username'/'password'
          $c = $m->Connect($smtp, 25, $usuario, $senha) or die(print_r($m->Result));
          
          $m->Send($c);

      if (!empty($_POST)){
          $assunto = "Mensagem enviada através do website";
          $mensagem = "<h1>Mensagem enviada atrav&eacute;s do website</h1>";
          
          foreach ($_POST as $key => $value) {
              $mensagem .= "<p><strong>$key:</strong> $value</p>";
          }
          //$mensagem .= "<hr>";
          //$mensagem .= "<p><strong>IP:</strong> " . $_SERVER['REMOTE_ADDR'] . "</p>";
          //$mensagem .= "<p><strong>Info do usu&aacute;rio:</strong> " . $_SERVER['HTTP_USER_AGENT'] . "</p>";
          $destinatario = 'contato@abcd***.com.br';
          // Envia o e-mail
          sendMail($destinatario, $mensagem, $assunto);
          // Redireciona o usuario para a mensagem
          header("Location: mensagem.html");
      }
      ?>
       
      Se puderem me ajudar, agradeço.
      ergosum
    • Por pamdornas
      Pessoal eu não entendo muito de programação, e estou com problema no meu formulário de contato, ele envia a mensagem pro meu email mas quando chega, chega da seguinte forma:
      Nome:

      Email:

      Telefone:

      Assunto:

      Mensagem:
      Os dados não vem preenchidos mesmo quando preencho tudo.

      Ahh e a mensagem que deveria aparecer depois que preencho o formulário e clico em enviar, não está aparecendo

      O meu código é:

      <?php // Destinatário $para = "meuemail@meuemail.com.br"; // Assunto do e-mail $Assunto = "Contato do site"; // Campos do formulário de contato $nome = $_POST['nome']; $email = $_POST['email']; $telefone = $_POST['telefone']; $assunto = $_POST['assunto']; $mensagem = $_POST['mensagem']; // Monta o corpo da mensagem com os campos $corpo = "Nome: $nome Email: $email Telefone: $telefone Assunto: $assunto Mensagem: $mensagem"; // Cabeçalho do e-mail $headers = "Content-Type:text/html; charset=UTF-8\r\n"; $headers .= "From: SEUEMAIL@seudominio.com.br\r\n"; //Vai ser //mostrado que o email partiu deste email e seguido do nome $headers .= "Return-Path: SEUEMAIL@seudominio.com.br\r\n"; //caso a msg //seja respondida vai para este email. $headers .= "MIME-Version: 1.0\n"; mail($para, $assunto, $corpo, $header); $msg = "Sua mensagem foi enviada com sucesso."; // Mostra a mensagem acima e redireciona para index.html echo "<script>location.href=`index.html`; alert(`$msg`);</script>"; ?>
    • Por PauloLapienis
      Pessoal, não manjo muito de programação em php, por isso estou apanhando para fazer o envio de email pelo site funcionar.
      Estou usando/editando um template que baixei.
      A tela da Mensagem enviada com Sucesso, exibe beleza, mas o email não chega no destino.
      * Estou testando o envio direto no servidor de hospedagem.
      Abaixo os códigos para conferencia dos mais experts.

      - Código do Form

      <form id="contactform" action="contactform/contact.php" method="post" class="validateform" name="send-contact">
      <div id="sendmessage">A sua mensagem foi enviada com Sucesso!</div>
      <div id="errormessage"></div>
      <form action="" method="post" role="form" class="contactForm">
      <div class="form-group">
      <input type="text" name="name" class="form-control" id="name" placeholder="Seu Nome" data-rule="minlen:4" data-msg="Por favor, insira ao menos 4 caracteres" />
      <div class="validation"></div></div>
      <div class="form-group">
      <input type="email" class="form-control" name="email" id="email" placeholder="Seu Email" data-rule="email" data-msg="Por favor, digite um email válido" />
      <div class="validation"></div></div>
      <div class="form-group">
      <input type="text" class="form-control" name="subject" id="subject" placeholder="Assunto" data-rule="minlen:4" data-msg="Por favor, insira ao menos 8 caracteres" />
      <div class="validation"></div></div>
      <div class="form-group">
      <textarea class="form-control" name="message" rows="5" data-rule="required" data-msg="Please write something for us" placeholder="Sua mensagem"></textarea>
      <div class="validation"></div></div>
      <div class="text-center"><button type="submit" class="btn btn-theme">Enviar mensagem</button></div>
      </form>


      - Código do contact.php
      <?php

      include 'config.php';
      error_reporting (E_ALL ^ E_NOTICE);
      $post = (!empty($_POST)) ? true : false;
      if($post)
      {
      $name = stripslashes($_POST['name']);
      $email = trim($_POST['email']);
      $subject = stripslashes($_POST['subject']);
      $message = stripslashes($_POST['message']);

      $error = '';
      if(!$error)
      {
      $mail = mail(WEBMASTER_EMAIL, $subject, $message,
      "From: ".$name." <".$email.">\r\n"
      ."Reply-To: ".$email."\r\n"
      ."X-Mailer: PHP/" . phpversion());

      if($mail)
      {
      echo 'Mensagem enviada com Sucesso!';
      }
      }

      }
      ?>

      - Código do config.php
      <?php
      // To
      define("WEBMASTER_EMAIL", 'meuemail@meudominio.com.br');
      ?>

×

Informação importante

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