Ir para conteúdo

POWERED BY:

Arquivado

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

deidvi

[Resolvido] Formulário de contato

Recommended Posts

criei um formulário de contato email_form.php

e o email.php coleta os dados e me envia para o email...

porém alguns campos ele me envia normal, exceto os campos "telefone" e "site"..

Por favor analizem... me ajudem encontrar o erro... Eu imagino onde seja, porem naum consigo a solução... :(

 

segue o email_form.php

 

<script> 

function mascara(o,f){
   v_obj=o
   v_fun=f
   setTimeout("execmascara()",1)
}

function execmascara(){
   v_obj.value=v_fun(v_obj.value)
}

function leech(v){
   v=v.replace(/o/gi,"0")
   v=v.replace(/i/gi,"1")
   v=v.replace(/z/gi,"2")
   v=v.replace(/e/gi,"3")
   v=v.replace(/a/gi,"4")
   v=v.replace(/s/gi,"5")
   v=v.replace(/t/gi,"7")
   return v
}

function soNumeros(v){
   return v.replace(/\D/g,"")
}

function telefone(v){
   v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
   v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
   v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
   return v
}

function cpf(v){
   v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
   v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
   v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
                                            //de novo (para o segundo bloco de números)
   v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
   return v
}

function cep(v){
   v=v.replace(/D/g,"")                //Remove tudo o que não é dígito
   v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações
   return v
}

function cnpj(v){
   v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
   v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos
   v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
   v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos
   v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos
   return v
}

function romanos(v){
   v=v.toUpperCase()             //Maiúsculas
   v=v.replace(/[^IVXLCDM]/g,"") //Remove tudo o que não for I, V, X, L, C, D ou M
   //Essa é complicada! Copiei daqui: http://www.diveintopython.org/refactoring/refactoring.html
   while(v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"")!="")
       v=v.replace(/.$/,"")
   return v
}

function site(v){
   //Esse sem comentarios para que você entenda sozinho ;-)
   v=v.replace(/^http:\/\/?/,"")
   dominio=v
   caminho=""
   if(v.indexOf("/")>-1)
       dominio=v.split("/")[0]
       caminho=v.replace(/[^\/]*/,"")
   dominio=dominio.replace(/[^\w\.\+-:@]/g,"")
   caminho=caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g,"")
   caminho=caminho.replace(/([\?&])=/,"$1")
   if(caminho!="")dominio=dominio.replace(/\.+$/,"")
   v="http://"+dominio+caminho
   return v
}

</script> 
<form name="form1" method="post" action="email.php">
 <table width="100" border="0" cellspacing="0" cellpadding="0" align="center">
   <tr bgcolor="#FFFF00"> 
     <td valign="top" width="100" nowrap><font class="texto">Nome:</font></td>
     <td> 
       <input class="form_campos" type="text" name="nome" size="23"/>
     </td>
   </tr>
   <tr bgcolor="#FFFF00"> 
     <td valign="top" width="100" nowrap><font class="texto">Telefone:</font></td>
  <td>
       <input id="itelefone" onkeypress="mascara(this,telefone)"  maxlength="14" /> 
     </td>
</tr>
<tr bgcolor="#FFFF00"> 
     <td valign="top" width="100" nowrap><font class="texto">E-mail:</font></td>
     <td> 
       <input class="form_campos" type="text" name="email" size="23"/>
     </td>
<tr bgcolor="#FFFF00">
   <td valign="top" width="100" nowrap><font class="texto">Site:</font></td>
      <td>  	   
       <input id="isite" onkeyup="mascara(this,site)" value="http://" /> 
   </tr>
   <tr bgcolor="#FFFF00"> 
     <td valign="top" width="100" nowrap><font class="texto">Assunto:</font></td>
     <td> 
       <select class="form_campos" name="assunto">
         <option class="form_campos" value="Opinião" selected>Opinião</option>
         <option class="form_campos" value="Sugestão">Sugestão</option>
         <option class="form_campos" value="Parceria">Parceria</option>
         <option class="form_campos" value="Reclamação">Reclamação</option>
         <option class="form_campos" value="Outros">Outros</option>
       </select>
     </td>
   </tr>
   <tr bgcolor="#FFFF00"> 
     <td valign="top" width="100" nowrap><font class="texto">Mensagem:</font></td>
     <td> 
       <textarea class="form_campos" name="mensagem" cols="22" rows="6" size="auto"></textarea>
     </td>
   </tr>
   <tr bgcolor="#FFFF00"> 
     <td colspan="2" valign="middle"> 
  	<br>
       <div align="center"> 
         <input class="form_botao" type="submit" name="Enviar" value="Enviar Mensagem">
         <input class="form_botao" type="reset" name="Limpar" value="Limpar">
       </div>
     </td>
   </tr>
 </table>
</form>

 

segue o email.php

 

<?php

//Formulário de Contato | Versão 7.5 (klebrr)<br>
//Autor Original: Autor Original: Apoena
//http://www.phpbrasil.com
// adaptado em 05/09/2005 - kleber (klebrr em klebrr.com)
// não funcionava com php 5.0.1 e 5.0.4	 (Testado apenas no Linux)
// dispensei o include (config.php) pra ficar num só arquivo	

echo "<html>
<head>
<title> Processando... </title>
<link rel=\"stylesheet\" href=\"class.css\" type=\"text/css\">
</head>";
// Variaveis originadas no email_form.php
$nome = $_POST['nome'];
$itelefone = $_POST['telefone'];
$email = $_POST['email'];
$isite = $_POST['site'];[/color]
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
// adicionei a captura do ip do remetente 
$ip = $_SERVER['REMOTE_ADDR'];
//Seu email, para onde irao as informações do formulário
$mail_destino = "deidvi_junio@hotmail.com";
echo "<body bgcolor=\"#FFFFFF\" leftmargin=\"10\" topmargin=\"10\" marginwidth=\"0\" marginheight=\"0\">
<center><font class=\"texto\">";
//Mensagem de cabeçalho do email
$mail_header = "Mensagem de Contato Pelo SITE.";
//Mensagem para o email de resposta
$msg_reply = "Olá $nome,\nRecebemos o seu email com o assunto $assunto.\n\nSe necessário em breve entraremos em contato, respondendo a sua questão. Obrigado pelo seu contato!\n\n Esta é uma mensagem automática de confirmação.\n Por Favor não responda este e-mail.\n $ip";
//Mensagem de Erro
$msg_erro = "Atenção!! Todos os campos devem ser Preenchidos (Nome, Telefone, E-mail e Mensagem ).";
//Endereço do seu SMTP (para se conectar no SMTP)	(acho que é só para windows afinal não tem postfix ou sendmail)
//$msg_smtp_url = "<p>smtp.prov.com.br</p>";
//Login do seu SMTP (para se conectar no SMTP)
//$msg_smtp_login = "";
//Senha do seu SMTP (para se conectar no SMTP)
//$msg_smtp_senha = "";

//Obrigatoriedade
if ($nome!="" and $assunto!="" and $email!="" and $itelefone!="")
{
$msg.="$mail_header\n\n";
$msg.="Nome: $nome\n";
$msg.="Telefone: $itelefone\n";
$msg.="Email: $email\n";
$msg.="Site: $isite\n";
$msg.="Assunto: $assunto\n";
$msg.="Mensagem: $mensagem\n";
$msg.="ip de origem: $ip";

if (mail($mail_destino, "Formulário de Contato Pelo SITE: $assunto", $msg, "From:$nome<$email>"))
	{
	//Imprimindo confirmação de envio
	echo 
		" </font></center>
		<html>
		<meta http-equiv=refresh content=10;URL=./formulario.php></html>";
		echo "<font class=\"texto\">";
		echo "<b>Olá! $nome</b>,<br><br>sua mensagem:<br> <font color=\"#FF0000\"><b>$mensagem </b></font><br>Foi enviada com sucesso!<br><br>";
		echo "Obrigado!<br>você receberá um e-mail de confirmação desta mensagem<br><br>Seu endereço de ip: <b>$ip</b></font> 
		";
	//Enviando mensagem de confirmação para o email do internauta
	 mail("$nome<$email>", "Re: Formulário de Contato: $assunto", $msg_reply, "From:<Chaveiro Vila Brasilia>");
	}
	else
	echo
		"
		<meta http-equiv=refresh content=3;URL=../>
		</html><center><br><br><font color=red>
		<b>Erro ao enviar e-mail!</b>
		</font></center>
		";
}
else
{
//Alerta sobre os campos obrigatórios
echo 
	"
	<br><br><center>
	$msg_erro <br><br>
	<a href=\"javascript:window.history.go(-1)\" class=\"links\">Por favor, volte e preencha corretamente.</a>
	</center>
	";
}

?>

Imagino ki o erro seja na especificação dos campos, colokei os nomes: $itelefone, $isite... tenho certeza ki tá errado... mais tentei de todas as formas e naum consegui... me ajudem por favor... é pra um cliente meu! :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não declarou o atributo name para o input telefone e site.

 

corrija o html.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não declarou o atributo name para o input telefone e site.

 

corrija o html.

 

Eu tentei isso amigo...

mais quando declaro o atributo "name"...

a função deixa de funcionar...

o campo passa a aceitar tanto letra quanto numero :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Corriga isso

 

  <input id="itelefone" name="itelefone" onkeypress="mascara(this,telefone)"  maxlength="14" /> 
<input id="isite" name="isite" onkeyup="mascara(this,site)" value="http://" /> 

$itelefone = $_POST['itelefone'];
$isite = $_POST['isite'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Corriga isso

 

  <input id="itelefone" name="itelefone" onkeypress="mascara(this,telefone)"  maxlength="14" /> 
<input id="isite" name="isite" onkeyup="mascara(this,site)" value="http://" /> 

$itelefone = $_POST['itelefone'];
$isite = $_POST['isite'];

 

Valeu amigooo!!! ME AJUDOU MTO... o problema é ki ao definir o atributo "name" eu me eskecia de utilizar o mesmo nome da "id" e acabava colocando um nome diferente...

 

Vlw Irmão!!!!

 

SOU NOVO AKIE, INTÃO AINDA NAUM SEI FECHAR O TOPICO!!! VLW

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade, o problema é que o nome das tuas functions javascript está muito ruim.

 

se você definir name="telefone" e name="site", entra em conflito com o nome das functions por serem iguais e dai o erro.

 

para deixar claro que não era necessário, o ID ser igual ao NAME.

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.