← PHP

Código de mail com html + php que não reconhece acento e ç

Lida 6252 vezes

Offline

juliparaiso 
Membro
Mensagens 2 Gostos 0
Troféus totais: 10
Trófeus: (Ver todos)
Combination Topic Starter Level 2 Level 1 First Post Karma Fourth year Anniversary Third year Anniversary Second year Anniversary One year Anniversary

Boa noite, pessoal!
Estou precisando da ajuda de vocês. Então, fiz um site e coloquei este código de php para enviar o email do contato:

<?
function trataTxt($var) {

   $var = strtolower($var);
   
   $var = ereg_replace("[áàâãª]","a",$var);   
   $var = ereg_replace("[éèê]","e",$var);   
   $var = ereg_replace("[óòôõº]","o",$var);   
   $var = ereg_replace("[úùû]","u",$var);   
   $var = str_replace("ç","c",$var);
   
   return $var;
}

echo "Texto com acento:" . "á é í ó ú";
echo "<br>";
echo "Texto sem acento:" . trataTxt("á é í ó ú");
$hoje_tmp = getdate();
$hoje = ($hoje_tmp[hours].":".$hoje_tmp[minutes].":".$hoje_tmp[seconds]);
$nome = $_POST['nome']; //trata a variável nome
$empresa = $_POST ['empresa'];
$endereco = $_POST ['endereco'];
$cep = $_POST ['cep'];
$cidade = $_POST ['cidade'];
$estado = $_POST ['estado'];
$telefone = $_POST ['telefone'];
$email = $_POST['email']; //trata a variável e-mail
$comoconhe = $_POST ['comoconhe'];
$origem = $_POST['origem'];
$destino = $_POST ['destino'];
$transportar = $_POST ['transportar'];

global $email;
//transforma em variavel global a variável e-mail
$enviou = mail("falecom@nordestemudancas.com.br", // aqui voce coloca o seu e-mail
"$assunto Contato pelo site",
"Nome: $nome
Empresa: $empresa
Endereço: $endereco
CEP: $cep
Cidade: $cidade
Estado: $estado
Telefone: $telefone
E-mail: $email
Como conheceu a Nordeste Mudanças: $comoconhe
Origem da sua mudança: $origem
Destino da mudança: $destino
O que irá transportar: $transportar",
'From: $email <$nome>');
if ($enviou){
header('location:http://www.nordestemudancas.com.br/contato.html');
}
else {
header('location:http://www.nordestemudancas.com.br/contato.html');
echo '<p> $nome, Sua mensagem foi enviada com sucesso!</p>';
}
?>

No entanto, não mudou nada. As mensagens continuam chegando com símbolos no lugar do ç e de vogais com acento.
Jpa coloquei o utf-8, o charset charset 8559-1 e nada. Não sei mais o que fazer. Minha última tentativa foi colocar o trecho do começo para ver se trocava as palavras com acento e ç por outra que esses sejam substituídos.

Obrigada

Offline

AlexandrePaulo 
Membro
Mensagens 360 Gostos 42
Feedback +3

Troféus totais: 24
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Poll Starter Level 4 Level 3 Level 2 Level 1 100 Posts

Epaaaaa....

Mas o que é isso? Retirar os acentos é solução péssima! Então a mensagem vai com português errado (sem acentos)??? Parece informática dos anos 1980!!!

E esse código é super confuso - nem bem entendi onde é colocado o body da mensagem, mas parece que falta um $email = trataTxt($email) por aí...

Eu escrevi a minha própria plataforma de emailing todas as mensagens são enviadas com
Código: [Seleccione]
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> no head, sem qualquer problema

O problema pode estar no formulário de origem (tratamento do POST) - a página do form está com o charset correto?
Recomendo, também, uma olhada aqui: http://www.php.net/manual/pt_BR/function.mb-convert-encoding.php

Offline

juliparaiso 
Membro
Mensagens 2 Gostos 0
Troféus totais: 10
Trófeus: (Ver todos)
Combination Topic Starter Level 2 Level 1 First Post Karma Fourth year Anniversary Third year Anniversary Second year Anniversary One year Anniversary

Oi diabinhomor, eu sei que é horrível isso.
Mas já tentei de tudo.
O charset está correto no form.
Já fiz isso que tu dissesse e também não adiantou =T
Offline

oguiadositeadulto 
Membro
Mensagens 3 Gostos 0
Troféus totais: 12
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 2 Level 1 First Post Karma Webmaster Fourth year Anniversary Third year Anniversary

Tente usar a função do PHP utf8_encode.

http://php.net/manual/pt_BR/function.utf8-encode.php