Ir para conteúdo

POWERED BY:

Arquivado

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

amarelobr

Formulário de Contato ultilizando Captcha para validação dos dados e e

Recommended Posts

Boa tarde a todos pessoal sou velhinho aqui no site, más estou começando a postar Scripts para o pessoal que trabalha com PHP.

 

Captcha Download

 

Vamos lá!!

 

Bem pessoal esse Script que vou apresentar abaixo ele trata de um formulário em PHP que trabalha com Captcha e Sessão para validação dos dados e Chave de Segurança para enviar o E-mail, pois todos nós Programados sabemos que Administrar um sistema não é nada fácil, más pior ainda é receber e-mail de usuários ou melhor BOOTS diariamente com nada escrito no corpo da mensagem, bem vamos lá, segue abaixo o Código sem muito detalhe.

 

Vamos lá, o codigo abaixo se chama formulario.php

<!--Se o Email for Enviado ele mostrar a mensagem que colocamos na Variavel $enviado-->
<h1><?php if($enviado){ echo $enviado;}?></h1>
<div class="formulariocontato">
<form name="contato" action="" method="post" id="contato">
<fieldset>
<legend>Formulario de Contato</legend>
          <label>
           <span>Nome:</span>
           <input type="text"  name="nome" />
           </label>

           <label>
           <span>E-mail:</span>
          	<input type="text" name="email"/>
           </label>

           <label>
           <span>Telefone:</span>        
           <input type="text"  name="telefone"/>
           </label>

           <label>
           <span>Assunto:</span>   
           <input type="text" name="assunto" />
           </label>

           <label>
           <span>Mensagem:</span> 
          <textarea name="mensagem" cols="30" rows="10"></textarea>
           </label>
           <label>
           <span style="margin-bottom:5px;">Chave de Segurança:</span>
           <div class="captcha" style="width:280px;float:right; margin-bottom:10px;">
           <img src="captcha/captcha.php" align="middle" id="imgCaptcha" title="Chave de Segurança"/>
           </div>
           </label>
           <span style="margin-top:5px;"></span>
           <label>
           <input type="text" class="" name="codigodeseguranca"/>

           <!--Se o Código de Segurança estiver Inválido mostrar o erro que colocamos na Variavel $erro -->
          <?php echo $erro;?>
           </label>
          <span style="margin-top:5px;"></span>
          <br />
        <input type="image" src="images/enviar.gif" title="Enviar Contato" />

</fieldset>
</form>

Bem pessoal, esse é o código HTML do nosso Formulário, beleza ?

Vamos agora ao nossa pagina que vai receber o POST trata-los da forma correta e enviar o E-mail com a função nativa mail(); vocês podem ultilizar um include dentro da própria página formulario.php, para enviar o E-mail, ou atribuir uma página na action da form e trabalhar com arquivo externo, bem vai da necessidade de cada um,

isso é apenas um exemplo de como trabalharmos.!!!

<?php
session_start();

if($_POST) {
  //Nesta Linha estamos pergutando ao PHP se o código de segurança é válido e colocando ele em uma sessão
  if( $_SESSION['codigodeseguranca'] == $_POST['codigodeseguranca']) ) {

               //Capturamos os POST
	$nome = $_POST['nome'];
	$email = $_POST['email'];
	$telefone = $_POST['telefone'];
	$assunto = $_POST['assunto'];
	$mensagem = $_POST['mensagem'];

	//MOntamos os Headers do E-mail
	$headers  = "MIME-Version: 1.0\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1\n";
	$headers .= "From: ".$email."\n";
	$headers .= "Return-Path: Seu Site <atendimento@liberalimesonline.com.br>\r\n";
	$mensagem = "		<b>Nome:</b> ".$nome."<br>
				<b>E-mail:</b> ".$email."<br>
				<b>Assunto:</b> ".$assunto."<br>
				<b>Telefone:</b> ".$telefone."<br>
				<b>Mensagem:</b> ".$mensagem."<br>";					

//Se o E-mail for enviado com sucesso olha oque ele vai fazer!		
if(mail("atendimento@liberalimesonline.com.br", "Formulário de Contato", $mensagem, $headers)){?>

              //Atribuiremos a variavel $enviado o valor ->Mensagem Enviada com Sucesso, que vai servir para mostrarmos na nossa pagina de formulário, que o e-mail foi enviado com sucesso, caso o E-mail não tenha sido enviado com sucesso vai para a condição de baixo e atribuia os campos na Sessao, se for enviado ele vai limpar a sessão.  
                unset($_SESSION['codigodeseguranca']);
		unset($_SESSION['nome']);
		unset($_SESSION['email']);
		unset($_SESSION['telefone']);
		unset($_SESSION['assunto']);
		unset($_SESSION['mensagem']);


	}
  }else{               //Se não enviar o E-mail, nós iremos gravar na sessão todos os campos digitados nos campos para que o usuário nao prescise digitar novamamente, pois não estamos ultilizando Ajax ou Jquery que poderia ser mais dinâmico.
		$erro = $_SESSION['error'] = "<font color=red font-size=12>Chave de segurança inválida";
                       $nome = $_SESSION['nome'] = $_POST['nome'];
		$email = $_SESSION['email'] = $_POST['email'];
		$telefone = $_SESSION['telefone'] = $_POST['telefone'];
		$assunto = $_SESSION['assunto'] = $_POST['assunto'];
		$mensagem = $_SESSION['mensagem'] = $_POST['mensagem'];
	}	
  }


?>

Bem pessoal é minha primeira contruibuição, Caso esteje com algum erro postem aí, esta aberto a críticas e elogios.

 

 

Abraço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O único erro foi que você postou no lugar errado! Mas valeu aí pela contribuição! Ah, achei um erro aqui! Você fechou a tag do php, mas não a abriu novamente:

 

//Se o E-mail for enviado com sucesso olha oque ele vai fazer!

if(mail("atendimento@liberalimesonline.com.br", "Formulário de Contato", $mensagem, $headers)){?>

 

Aí após isso, você não abriu a tag do php e depois você usou a tag de fechamento sem colocar a de abertura:

 

?>(Última linha!)

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.