deidvi 0 Denunciar post Postado Março 21, 2011 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
William Bruno 1501 Denunciar post Postado Março 21, 2011 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
deidvi 0 Denunciar post Postado Março 21, 2011 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
alcaidedigital 57 Denunciar post Postado Março 21, 2011 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
deidvi 0 Denunciar post Postado Março 21, 2011 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
William Bruno 1501 Denunciar post Postado Março 21, 2011 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
deidvi 0 Denunciar post Postado Março 21, 2011 Intendi agora... Fiz a Correção no Nome da Função Java... vlw Irmão!! Compartilhar este post Link para o post Compartilhar em outros sites