Zoação 2 Denunciar post Postado Maio 12, 2013 Sempre que envio alguma mensagem que possua acentuação gráfica, ao abrir o e-mail na caixa postal do webmail, chega tudo desconfigurado, vejam um exemplo: Caracteres digitados no formulário:áéíõã - Teste de acentuação no campo do formulário Caracteres que são recebidos (chega desta forma):????? - Teste de acentua??o no campo do formul?rio Estou tendo problemas com estes arquivos sempre que envio uma mensagem através do formulário HTML. Vejam os códigos abaixo, o que pode estar errado? --------------------------------- CÓDIGO HTML ----------------------- form.html -------------------------------------------------- <head><style type="text/css">.auto-style1 { font-family: Verdana, Geneva, Tahoma, sans-serif; font-size: xx-small;}.auto-style2 { text-align: center; font-family: Verdana, Geneva, Tahoma, sans-serif; font-size: xx-small;}.auto-style4 { font-family: Verdana, Geneva, Tahoma, sans-serif; font-size: xx-small; margin-bottom: 0px;}.auto-style5 { text-align: right;}</style><title>Cadastre seu e-mail</title></head> <body style="margin: 5; "> <form name="form1" method="post" action="form.php"> <table align="center" cellpadding="0" cellspacing="0" style="width: 195"> <tr> <td class="auto-style2" colspan="2"><strong>RECEBA NEWS</strong></td> </tr> <tr> <td style="width: 230px" class="auto-style1" colspan="2"> <strong>Nome:</strong></td> </tr> <tr> <td style="width: 230px" colspan="2"> <input name="nome" type="text" id="nome" class="auto-style1" style="width: 176px"></td> </tr> <tr> <td style="width: 230px" class="auto-style1" colspan="2"> <strong>Email:</strong></td> </tr> <tr> <td style="width: 230px" colspan="2"> <input name="email" type="text" id="email" class="auto-style4" style="width: 176px"></td> </tr> <tr> <td style="width: 230px" class="auto-style5"> <input type="submit" name="Submit" value="Enviar" class="auto-style1"></td> <td style="width: 30" class="auto-style5"> </td> </tr> </table></form> ---------------------- FIM DO CÓDIGO HTML --------------------------------------------------------------------------------------------------------------- ---------------------- INÍCIO DO CÓDIGO PHP ---------------------------------- form.php ------------------------------------------------------------- <?php$nome = $_POST["nome"];$email = $_POST["email"];$mensagem .= "Nome: $nome\n";$mensagem .= "E-mail: $email\n\n";mail("email@email.com.br", "CadastroNews", $mensagem, "From: $email");echo "<h3><center> Obrigado! Seu cadastro foi realizado com sucesso!!!<center></h3>\n\n";?> ----------------- FIM DO CÓDIGO PHP -------------------------------------------------------------------------------------------------------------------- Obrigado pela ajuda!!! Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Maio 12, 2013 Duplicado: http://forum.imasters.com.br/topic/495215-formulrio-php-problemas-na-acentuao/ Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 12, 2013 Tem que passar o charset nos headers $headers.= "Content-type: text/html; charset=iso-8859-1\r\n"; <?php // Aqui vamos configurar o cabeçalho (header) do e-mail, formatos, remetentes, destinatários de cópias $headers = "MIME-Version: 1.0\r\n"; // Aqui definirmos o formato padrão HTML e a codificação do Texto $headers.= "Content-type: text/html; charset=iso-8859-1\r\n"; // Abaixo estabelecemos o Remetente do E-mail com o From: $headers.= "From: roberto.carlos@gmail.com\r\n"; // Caso se queira especificar o e-mail de Resposta, utilizamos o Reply-To:, caso você não queira, basta excluir a linha abaixo $headers.= "Reply-To: roberto.carlos@gmail.com\r\n"; // Se desejar enviar cópia para outro e-mail utiliza-se o Bcc:, especificando o e-mail de destino, se não quiser mandar essa cópia, basta remover a linha abaixo $headers.= "Bcc: roberto_carlos@hotmail.com\r\n"; // Nesta linha abaixo, configuramos o e-mail do destinatário, caso queira especificar mais de 1 destinatário, basta colocar uma virgula (,) e o outro e-mail, ex: fulano@gmail.com, fulano2@gmail.com $destinatario = "fulano@gmail.com"; // Definimos o assuntos do nosso e-mail $assunto = "Teste da Função mail()"; // Abaixo, vamos colocar o corpo da mensagem, lembrando que como definimos que será em padrão HTML acima no cabeçalho, você terá de utilizar tags HTML abaixo, veja o exemplo $mensagem = ' <html> <head> <title>Teste de Envio</title> </head> <body> <font face="Arial" size="2" color="#333333"> <br /> Nome: <b>Roberto Carlos</b><br /> E-mail: <b>roberto.carlos@gmail.com</b> </font> </body>'; // Definido todos os parametros, agora podemos proceder com o envio, conforme a linha abaixo, lembre-se sempre de verificar se todos os parâmetros estão corretamente especificados mail($destinatario, $assunto, $mensagem, $headers); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Zoação 2 Denunciar post Postado Maio 12, 2013 Veja o que ocorreu agora ... Enviei: Nome: teste áí ã E-mail: teste Chegou: Nome: teste áà ãE-mail: teste Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Vieira_25209 0 Denunciar post Postado Maio 12, 2013 O problema pode esta ocorrendo na codificação da sua página html, verifique se o charset do seu html é compatível com o que esta enviando. Codificação pode ser utf-8 e iso-8859-1.Recomendo usar o charset utf-8 no seu header do php.Caso o problema persista converta as variáveis recebidos do post através da função utf_decode();Verifique também a codificação / charset do e-mail. Compartilhar este post Link para o post Compartilhar em outros sites