Ir para conteúdo

POWERED BY:

Arquivado

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

diegomellobatista

[Resolvido] Formulario Fale Conosco

Recommended Posts

Fala pessoal, beleza?

Bem, estou tentando montar um formalário do tipo "fale conosco", onde o cidadão acesse o site e lá dentro ele consiga mandar um e-mail para mim, sem precisar abrir o outlook, ou a sua pagina de e-mail por exemplo...

vou explicar passo a passo como fiz...

criei um arquivo:

 

"faleconosco.php"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form id="formMail" name="formMail" method="post" action="mail.php">
  <table width="370" border="0" cellspacing="0" cellpadding="0">
	<tr>
	  <td width="27%" height="30" align="right">Nome:</td>
	  <td width="73%" height="30"><input type="text" name="txtNome" id="txtNome" /></td>
	</tr>
	<tr>
	  <td height="30" align="right">Telefone:</td>
	  <td height="30"><input type="text" name="txtTelefone" id="txtTelefone" /></td>
	</tr>
	<tr>
	  <td height="30" align="right">Email:</td>
	  <td height="30"><input type="text" name="txtEmail" id="txtEmail" /></td>
	</tr>
	<tr>
	  <td height="30" align="right">Cidade:</td>
	  <td height="30"><input type="text" name="txtCidade" id="txtEmail" />  
		Est.: <select size="1" name="txtEstado">
		   <option selected>AC</option>
		   <option value="AL">AL</option>
		   <option value="AM">AM</option>
		   <option value="AP">AP</option>
		   <option value="BA">BA</option>
		   <option value="CE">CE</option>
		   <option value="DF">DF</option>
		   <option value="ES">ES</option>
		   <option value="GO">GO</option>
		   <option value="MA">MA</option>
		   <option value="MG">MG</option>
		   <option value="MS">MS</option>
		   <option value="MT">MT</option>
		   <option value="PA">PA</option>
		   <option value="PB">PB</option>
		   <option value="PE">PE</option>
		   <option value="PI">PI</option>
		   <option value="PR">PR</option>
		   <option value="RJ">RJ</option>
		   <option value="RN">RN</option>
		   <option value="RO">RO</option>
		   <option value="RR">RR</option>
		   <option value="RS">RS</option>
		   <option value="SC">SC</option>
		   <option value="SE">SE</option>
		   <option value="SP">SP</option>
		</select></td>
	</tr>
	<tr>
	  <td height="30" align="right">Mennsagem:</td>
	  <td height="30" rowspan="2"><textarea name="txtMensagem" id="txtMensagem" cols="45" rows="5"></textarea></td>
	</tr>
	<tr>
	  <td height="30" align="right"> </td>
	</tr>
	<tr>
	  <td height="30" colspan="2" align="center">
	  <?php
	  
	  /*AQUI É O RESULTADO SE A MENSAGEM FOI ENVIADA COM SUCESSO OU NÃO*/
	  echo $_GET['msg'];
	  
	  ?></td>
	</tr>
	<tr>
	  <td height="30" colspan="2" align="center"><input type="submit" value="Enviar" /></td>
	</tr>
  </table>
</form>
</body>
</html>

 

e em seguida um outro arquivo:

"mail.php"

<?php

/*aqui vai o e-mial onde ira chegar o contato*/
$para = "meuemail@meudominio.com.br";

/*Aqui vai o assunto do Formulario*/
$assunto = "Formulário fale conosco.";

/*Aqui são as variaveis do formulario*/
$nome = $_POST["txtNome"];
$telefone = $_POST["txtTelefone"];
$email = $_POST["txtEmail"];
$cidade = $_POST["txtCidade"];
$estado = $_POST["txtEstafo"];
$mensagem = $_POST["txtMensagem"];


/* Aqui joguei a variavel Headers, tipo bem seca só pra permitir acentos*/

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/*Aqui é o corpo do msg, pra dar uma melhor organizada*/

$corpo = '<table width="400" border="0" align="center" bordercolor="#333333">
  <tr>
	<td height="30" colspan="2" align="center" bordercolor="#000000" bgcolor="#CCCCCC"><strong>'.$assunto.'</strong></td>
  </tr>
  <tr>
	<td width="83" height="30" align="right" bordercolor="#000000" bgcolor="#CCCCCC"><strong>Nome:</strong></td>
	<td width="307" height="30" align="left" bordercolor="#000000" bgcolor="#FFFFFF">'.$nome.'</td>
  </tr>
  <tr>
	<td height="30" align="right" bordercolor="#000000" bgcolor="#CCCCCC"><strong>Telefone:</strong></td>
	<td height="30" align="left" bordercolor="#000000" bgcolor="#FFFFFF">'.$telefone.'</td>
  </tr>
  <tr>
	<td height="30" align="right" bordercolor="#000000" bgcolor="#CCCCCC"><strong>Email:</strong></td>
	<td height="30" align="left" bordercolor="#000000" bgcolor="#FFFFFF">'.$email.'</td>
  </tr>
  <tr>
	<td height="30" align="right" bordercolor="#000000" bgcolor="#CCCCCC"><strong>Cidade:</strong></td>
	<td height="30" align="left" bordercolor="#000000" bgcolor="#FFFFFF">'.$cidade.'</td>
  </tr>
  <tr>
	<td height="30" align="right" bordercolor="#000000" bgcolor="#CCCCCC"><strong>Estado:</strong></td>
	<td height="30" align="left" bordercolor="#000000" bgcolor="#FFFFFF">'.$estado.'</td>
  </tr> 
  <tr>
	<td height="30" colspan="2" align="center" bordercolor="#000000" bgcolor="#CCCCCC"><strong>Mensagem:</strong></td>
	<td height="30" colspan="2" align="center" bordercolor="#000000" bgcolor="#FFFFFF">'.$mensagem.'</td>
  </tr>
</table>
';

/*AQUI ENVIA O E-MAIL*/

if (mail($para, $assunto, $corpo, $headers)) {

	header("Location: faleconosco.php?msg=Mensagem Enviada com Sucesso");
	
	}else {
	
	header("Location: faleconosco.php?msg=Falha ao Enviar a Mensagem");
	
	}

?>

ambos estão na pagina como por exemplo "http://www.meusite.com.br/faleconosco.php

e sempre da erro, alguém pode me ajudar por favor???

 

 

abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O site não pode exibir a página

HTTP 500

Causas prováveis:

•O site está em manutenção.

•O site tem um erro de programação.

 

Você pode tentar:

Atualizar a página.

 

Voltar para a página anterior.

 

Mais informações

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça um debug para encontrar o erro lógico..

 

teste 1

na primeira linha do "mail.php"

 

mail.php

<?php
echo 'debug: ' . time(); exit;

deve aparecer na tela

 

debug: 134486980

o numero acima é fictício apenas para exemplo.

teste e veja se aparece isso aí.

 

* motivo do teste 1 é eliminar possibilidades de erro para evitar perda de tempo com testes desnecessários ou procurando soluções mirabulantes para algo que pode ser simples.

 

se o teste 1 for bem-sucedido, faça o teste 2

 

teste 2

na primeira linha do mail.php

 

mail.php

<?php
echo 'debug ';
if( isset( $_POST['txtNome'] ) ){ 
   echo $_POST['txtNome']; 
}else{
   echo 'null';
} exit;

deverá aparecer:

debug NOME_DIGITADO_NO_FORMULARIO

se aparecer "NULL", há algo errado..

 

 

entendeu como depurar um código ?

utilize raciocínio lógico.

 

 

 

obs: poste aqui os resultados do teste 1 e teste 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala fera, bleza?

Então apareceu o seguinte..

 

TESTE 1

 

debug: 1238756902

 

 

TESTE 2

 

debug Diego

 

Obs.: No teste 2, "Diego" foi oq inseri do campo nome (txtNome)

 

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok. elimanos uma "pá" de erros aí com esses debugs

 

na primeira vez que li on seu topico, a primeira coisa que pensei é que está tendo algum erro na função mail() porque logo na condicional existe um header(location...)

 

pode ser que esteja acontecendo um erro gerado pela função mail(), esse erro joga um output ao browser e logo em seguida função header( ) tenta escrever no cabeçalho do browser, por isso gera o erro padrão que está vendo na sua tela "erro 500"

 

vamos ver se é isso mesmo ?

 

*remova os testes anteriores*

 

teste 3

 

abaixo da linha

/*AQUI ENVIA O E-MAIL*/

adicione

/*AQUI ENVIA O E-MAIL*/

echo '<hr>' . $corpo; exit;

deve aparecer uma linha HR do HTML e o conteúdo da variável $corpo

 

______________________________
[CORPO]
se apareceu tudo certo, com as concatenações entre variáveis e strings, então siga o teste 4

 

 

* obviamente.. remova o teste 3 *

 

teste 4

 

nesse trecho

if (mail($para, $assunto, $corpo, $headers)) {

	header("Location: faleconosco.php?msg=Mensagem Enviada com Sucesso");
	
	}else {
	
	header("Location: faleconosco.php?msg=Falha ao Enviar a Mensagem");
	
	}

modifique desse modo

 

if (mail($para, $assunto, $corpo, $headers)) {

echo 'OK';

	//header("Location: faleconosco.php?msg=Mensagem Enviada com Sucesso");
	
	}else {

echo 'NG';	
	//header("Location: faleconosco.php?msg=Falha ao Enviar a Mensagem");
	
	}
exit;

não equeça do "exit;" no final

 

 

retorne aqui os resultados..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hinom, seguinte...

o teste 3

executou ok...

 

teste 4

 

Continua com o msm erro.

Detalhe: Abrindo pelo Mozilla, ele manda a seguinte msg na tela:

 

PHP Warning: mail() [<a href='function.mail'>function.mail</a>]: "sendmail_from" not set in php.ini or custom "From:" header missing in E:\home\cleliaflores\Web\teste\mail.php on line 58

 

pode ajudar em algo????

Compartilhar este post


Link para o post
Compartilhar em outros sites

*retire todos os testes*

 

solução:

 

ini_set( 'sendmail_from', 'email@de.quem.envia' );

if (mail($para, $assunto, $corpo, $headers)) {

 

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Puts fera, brigadão mesmo....

1 linha resolvel uma dor de cabeça de quase 3 dias....

Brigadão mesmo, não qbrou um galho não, rancou uma arvore... rsrsrs

 

 

Abraços!!!!!

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.