Jump to content


Photo

Ajuda Recebimento De Formulario De Contato Via E-Mail


  • Faça o login para participar
10 replies to this topic

#1 Crash®

Crash®

    Turista

  • Usuários
  • 39 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 30/11/2009, 14:06

Salve galera estou precisando da ajuda dos amigos;

estou tentando configurar meu form na hora de enviar para que ele defina os campo assunto com o conteudo do form prenchido pelo meu visitante seria mais ou menos assim no campo:

No meu form tem um campo;
1 - Empresa de Origem
2 - Função desejada

Que no e-mail ficaria assim quando vier para o meu e-mail

De:(o nome da empresa que prencheu meu form)
Assunto: (funcao pretendida)

Ai tenho os seguintes campos;
if (getenv("REQUEST_METHOD") == "POST") 
{

  $empresa_origem       = $_POST['empresa_origem'];
  $funcao		        = $_POST['funcao'];
  $nome 		        = $_POST['nome'];
E aqui onde defino os parametros do e-mail que irei receber

$MailRecipiente = "meu-email@hotmail.com";
$MailAssunto    = "$funcao";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-15\r\n";
$headers .= "From: $empresa_origem\r\n";

Bom a questão que assim eu recebo o nme no campo De: OK
mas no assunto vem "Sem assunto"

E alem disto não consigo configurar para que o e-mail venha com a formatação do texto com os acentos tipo São Paulo e assim por diante..

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 30/11/2009, 14:41

Para a questão dos acentos, tente utilizar o charset iso-8859-1. (y)

Poste o formulário e como você está enviando o e-mail, mais especificamente a função mail(). ;)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 Crash®

Crash®

    Turista

  • Usuários
  • 39 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 30/11/2009, 14:52

Ai esta:


form.html
<!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>
<script>
   function formatar(src, mask)
   {  
	 var i = src.value.length;  
	 var saida = mask.substring(0,1);  
	 var texto = mask.substring(i)
   if (texto.substring(0,1) != saida)  
     { 
	                src.value += texto.substring(0,1);  
	 }
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
	background-color: #000000;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	font-size: 12px;
}
.style2 {
	color: #FFFFFF;
	font-weight: bold;
	font-size: 16px;
}
-->
</style>
</head>

<body>
<table width="410" height="500" border="0" align="left" cellpadding="0" cellspacing="0">
  <tr>
     <th width="599" align="left" valign="top" scope="row"><form id="FICHA_ADMISSAO" name="FICHA_ADMISSAO" method="post" action="form_2.php">
        <table width="444" border="0" align="left" cellpadding="0" cellspacing="3" bgcolor="#999999">
        <tr>
          <th colspan="5" align="left" valign="top" scope="row"><div align="left">
            <p>Empresa de Origem <span id="sprytextfield36">
              <input name="empresa_origem" type="text" tabindex="0" id="empresa_origem" size="40" maxlength="40" />
              </span></span></p>
            <p></p>
          </div>
            <label></label>
            </strong>
            <div align="left"></div>
            </span>
            <div align="left"><strong>Função</strong> </div>
            <label></label>
            <input name="funcao" type="text" id="funcao" tabindex="1" size="50" maxlength="50" />            </th>
          </tr>
        <tr>
          <th colspan="5" align="left" valign="top" scope="row"><div align="left"><strong>Nome</strong></div>
            <input name="nome" type="text" id="nome" tabindex="2" size="50" maxlength="50" />           </th>
          </tr>
        <tr>
          <th colspan="2" align="left" valign="top" scope="row"><div align="left"><strong>RG</strong></div>
            <input name="rg" type="text" id="rg" tabindex="3" size="15" maxlength="12" onkeypress="formatar(this, '##.###.###-##')" />           </th>
           <tr>
          <th colspan="4" align="left" valign="top" scope="row">&nbsp;</th>
          <th align="left" valign="top" scope="row">&nbsp;</th>
          <tr>
          <th colspan="2" align="left" valign="top" scope="row"><input type="submit" name="enviar" id="enviar" value="Enviar" tabindex="41" /> </th>
          <th align="left" valign="top" scope="row"><input type="reset" name="limpar" id="limpar" value="Limpar" tabindex="42" /></th>
          </tr>
      </table>
    </form>
    </th>
  </tr>
</table>
</body>
</html>



Form_2.php
<title>Contato pelo site</title><?php
if (getenv("REQUEST_METHOD") == "POST") 
{

  $empresa_origem       = $_POST['empresa_origem'];
  $funcao		        = $_POST['funcao'];
  $nome 		        = $_POST['nome'];
  

  $MailRecipiente = "meu-email@hotmail.com"; 
  $MailAssunto    = "$funcao";
  $headers = "MIME-Version: 1.0\r\n";
  $headers .= "Content-type: text/html; charset=iso-8859-15\r\n";
  $headers .= "From: $empresa_origem\r\n";
  
   
  
$msg = "<html><body>
<br>
<br>
<br>Formulario de Admissão enviado pelo Site
<br>
<br>Empresa de Origem: <b>$empresa_origem</b>
<br>Função           : <b>$funcao</b>
<br>Nome             : <b>$nome</b>
<br>RG               : <b>$rg</b>
<br>
<br></body></html>"; 

$MandaEmail=mail($MailRecipiente,$$empresa_origem,$msg,$headers);

$msgx = "<html><body>
<br>
<br>
<br>Formulário Enviado com Sucesso !
<br>
<br>Caro Sr(a) <B>$empresa_origem</B>
<br>Seu formulário foi enviado com sucesso !
<br>
<br>
<br>
<br></body></html>"; 

mail($cMail,$cAssunto,$msgx,$headers);
	
}
?>


#4 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 30/11/2009, 15:10

Para o primeiro e-mail, como você disse que no assunto deve vir a função, acredito que seja assim:

$MandaEmail = mail($MailRecipiente, $MailAssunto, $msg, $headers);

E no segundo e-mail, a variável $cAssunto parece não ter sido definida, por isso está indo vazio.

A questão do charset, acho que por algum engano saiu um 5 a mais. ;)

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

[]'sAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 Crash®

Crash®

    Turista

  • Usuários
  • 39 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 02/12/2009, 16:19

Mais uma vez Paulo André ! Obrigado me ajudou nisto também..
Agora resulvido a parte dos dados que são digitados no form agora a aprte que ficou sem a acentuação são os nomes dos campos
Ex. Função => Fun��o

Estranho o codigo não pega todo o form ?

#6 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 02/12/2009, 16:27

Tente agora então, colocar o código HTML com cabeçalho completo:

$msg = "<!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>Formulário de Admissão enviado pelo Site</title>
</head>

<body>
<br />
<br />
<br />Formulário de Admissão enviado pelo Site
<br />
<br />Empresa de Origem: <strong>$empresa_origem</strong>
<br />Função           : <strong>$funcao</strong>
<br />Nome             : <strong>$nome</strong>
<br />RG               : <strong>$rg</strong>
<br />
<br />
</body>
</html>";

Só alterei as tags de negrito e quebra de linha para ser válido com XHTML 1.0 Transitional, mas para e-mail acho que não faz muita diferença.

Faça esse teste.

[]'s (ok2)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#7 Crash®

Crash®

    Turista

  • Usuários
  • 39 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 02/12/2009, 16:45

Não entendi muito bem isto ..
E para fazer exatmente como esta no seu post
pois tentei e deu erro

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/form/form_2.php on line 55

Parse error: syntax error, unexpected '"' in /home/form/form_2.php on line 55


A linha referida tem isto

$msg = "<!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\" />

Ai tentei colocando no inicio da pagina
antes de tudo mas não deu certo continua se acento .. mas as informações que foram digitadas ficaram com acentuação corretas

Estranho isto né ...?

olha só fiz o seguinte teste se eu deixar esta linha :
$headers .= "Content-type: text/html; charset=utf-8\r\n";
OK funciona com as informações que são digitadas
Mas se eu deixo ;
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
Ai so funciona com o texto dos campos ai aceitam os acentos mas as informações que foram digitadas perdem a acentuação

Edição feita por: Crash®, 02/12/2009, 16:49.


#8 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 02/12/2009, 16:47

O ideal seria converter os caracteres com htmlentities(). E sem tag html, body... assim que eu faço. ;)

Exemplo:

$msg = "<br />
<br />
<br />".htmlentities('Formulário de Admissão enviado pelo Site')."
<br />
<br />Empresa de Origem: <strong>".htmlentities($empresa_origem)."</strong>
<br />".htmlentities('Função')."           : <strong>".htmlentities($funcao)."</strong>
<br />Nome             : <strong>".htmlentities($nome)."</strong>
<br />RG               : <strong>".htmlentities($rg)."</strong>
<br />
<br />";

att,
Muller Dias
ex-administrador Fórum WMO

#9 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 02/12/2009, 16:48

Ops.. esqueci de escapar uma aspa:

$msg = "<!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>Formulario de Admissão enviado pelo Site</title>
</head>

<body>
<br />
<br />
<br />Formulario de Admissão enviado pelo Site
<br />
<br />Empresa de Origem: <strong>$empresa_origem</strong>
<br />Função           : <strong>$funcao</strong>
<br />Nome             : <strong>$nome</strong>
<br />RG               : <strong>$rg</strong>
<br />
<br />
</body>
</html>";

O que acontece é que você não tinha um código HTML correto, incluindo as tags <head> que tem o META que define o charset. (y)

[]'sAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#10 Crash®

Crash®

    Turista

  • Usuários
  • 39 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 02/12/2009, 16:55

AE !!!!!!!!!!!!!!!!!!

Agora esta tudo funcionando !!!!!!

hehehehehehehe.. valeu mesmo !!!

Agora vou tentar acrescentar mais alguns detalhes eu tenho que fazer a validação dos campos CPF, RG, PIS e obrigar o princhemento de masi alguns itens...
Vou dar uma olhada se encontro algum material apra isto ..

Paulo André Muito obrigado novamente !!!

O ideal seria converter os caracteres com htmlentities(). E sem tag html, body... assim que eu faço. ;)

Exemplo:

$msg = "<br />
<br />
<br />".htmlentities('Formulário de Admissão enviado pelo Site')."
<br />
<br />Empresa de Origem: <strong>".htmlentities($empresa_origem)."</strong>
<br />".htmlentities('Função')."           : <strong>".htmlentities($funcao)."</strong>
<br />Nome             : <strong>".htmlentities($nome)."</strong>
<br />RG               : <strong>".htmlentities($rg)."</strong>
<br />
<br />";



sem.Ponto Obrigado por responder meu post vou dar uma olhada ..
Galera Obrigado mesmo !

#11 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 02/12/2009, 17:16

Eu vou explicar melhor o que eu fiz...

Quando você envia um cabeçalho com iso-8859-1, você não pode acentuar palavras dessa maneira:

tópico
experiência

Todos os caracteres devem ser convertidos para entidades html. Então, o correto seria colocar assim:

t&oacute;opico
experi&ecirc;ncia

htmlentities() é capaz de converter, mas é melhor usar só quando variáveis forem chamadas. O resto pode escrever manualmente mesmo.

Se você envia um cabeçalho utf-8, aí sim você pode mandar os caracteres sem converter, mas é preciso tormar cuidado para o usuário não colocar código html. Nesse caso, htmlspecialchars() pode resolver esse problema.

Sobre colocar tags html, head, body sempre me deixou encucado. Não entendo porque alguns colocam, pois em meus testes, ao ver o original de uma mensagem enviada pelo gmail, a gente não encontra tais tags.
att,
Muller Dias
ex-administrador Fórum WMO




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq