geektr 1 Denunciar post Postado Agosto 24, 2009 Fiz um formulário de contato, porém ele deforma os caracteres: ç, ã, é, etc... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <- REPAREM AQUI [...] <form name="formulario" method="post" action="post/contato.php"> <table align="center" border="0" cellpadding="0" cellspacing="0" width="401"><!--DWLayoutTable--> <tbody><tr> <td class="style1" nowrap="nowrap" valign="middle" width="100"> <p><font class="style1">Nome:</font></p> </td> <td width="301"> <input class="form_campos" name="nome" size="34" type="text"> </td> </tr> <tr> <td nowrap="nowrap" valign="middle"><font class="style1">Cidade</font></td> <td> <input class="form_campos" name="cidade" size="20" type="text"> </td> </tr> <tr> <td nowrap="nowrap" valign="middle"><font class="style1">Estado:</font></td> <td> <select class="form_campos" name="estado"> <option value="Escolha seu Estado">Escolha seu Estado</option> <option value="AC">AC</option> <option value="AL">AL</option> <option value="AM">AM</option> <option value="AP">AP</option> <option value="BA">BA</option> <option value="CE">CE</option> <option value="DF">DF</option> <option value="ES">ES</option> <option value="GO">GO</option> <option value="MA">MA</option> <option value="MG">MG</option> <option value="MT">MT</option> <option value="MS">MS</option> <option value="PA">PA</option> <option value="PB">PB</option> <option value="PE">PE</option> <option value="PI">PI</option> <option value="PR">PR</option> <option value="RJ">RJ</option> <option value="RN">RN</option> <option value="RO">RO</option> <option value="RR">RR</option> <option value="RS">RS</option> <option value="SC">SC</option> <option value="SE">SE</option> <option value="SP">SP</option> <option value="TO">TO</option> </select> </td> </tr> <tr> <td nowrap="nowrap" valign="middle"><font class="style1">E-mail:</font></td> <td> <input class="form_campos" name="e-mail" size="34" type="text"> </td> </tr> <tr> <td nowrap="nowrap" valign="middle"><font class="style1">Assunto:</font></td> <td> <input name="assunto_mensagem" class="form_campos" size="34" type="text"> </td> </tr> <tr> <td align="center" nowrap="nowrap" valign="middle"><div align="left"><font class="style1">Mensagem:</font></div></td> <td> <textarea class="form_campos" name="mensagem" cols="34" rows="4"></textarea> </td> </tr> <tr> <td colspan="2" valign="middle"> <!-- <font class="texto">* campos obrigatórios</font> --> <br> <div align="center"> <input class="form_botao" name="Enviar" value="Enviar " type="submit"> <input class="form_botao" name="Limpar" value="Limpar" type="reset"> </div> </td> </tr> <tr> <td><br> </td> <td><br> </td> </tr> </tbody></table> </form> contato.php <? $hoje_tmp = getdate(); $hoje = ($hoje_tmp[hours].":".$hoje_tmp[minutes].":".$hoje_tmp[seconds]); $nome = $_POST["nome"]; $cidade = $_POST["cidade"]; $estado = $_POST["estado"]; $email = $_POST["e-mail"]; $assunto_mensagem = $_POST["assunto_mensagem"]; $mensagem = $_POST["mensagem"]; global $email; $enviou = mail("contato@site.com.br", "$assunto_mensagem", "Nome: $nome Cidade: $cidade Estado: $estado E-mail: $email Assunto: $assunto_mensagem Mensagem: $mensagem", "From: $email <$nome>"); if ($enviou){ echo "<b>$nome</b>, sua mensagem foi enviada com sucesso.<br>Em breve lhe responderemos."; } else { echo "<b>$nome</b>, não foi possível enviar sua mensagem.<br>Tente novamente."; } ?> Porque está acontecendo isso? Compartilhar este post Link para o post Compartilhar em outros sites
entchucs 0 Denunciar post Postado Agosto 24, 2009 tente colocar o seguinte código no início de seu documento. <?php header("Content-Type: text/html; charset=ISO-8859-1",true); ?> Compartilhar este post Link para o post Compartilhar em outros sites
geektr 1 Denunciar post Postado Agosto 24, 2009 não, agora ao invés de ficarem uns quadrados no lugar dos caracteres, ficam sinais de interrogação (?) Compartilhar este post Link para o post Compartilhar em outros sites
.Gustavo. 0 Denunciar post Postado Agosto 25, 2009 Tente usar a função utf8_encode() nos dados que estão chegando do formulário. Ex.: $nome = utf8_encode($_POST["nome"]); Se não der certo tente com a utf8_decode(), provavelmente vai funcionar com uma das duas. Compartilhar este post Link para o post Compartilhar em outros sites
geektr 1 Denunciar post Postado Agosto 25, 2009 não funcionou... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Agosto 25, 2009 1. qual encoding está usando no banco de dados ? 2. qual encoding está configurado o editor de textos que utiliza para criar as paginas php ? 3. qual o encoding padrão configurado no php ? veja também: PHP, HTML, MySQL - Charset Encoding Compartilhar este post Link para o post Compartilhar em outros sites
geektr 1 Denunciar post Postado Agosto 25, 2009 2 - Uso dreamweaver, Veja a imagem abaixo: e a lista de opções disponiveis: (note o utf8, creio que resolve o problema) 1, e 3 - Bom, achei isso no phpinfo HTTP_ACCEPT_CHARSET ISO-8859-1,utf-8;q=0.7,*;q=0.7 HTTP_ACCEPT_LANGUAGE pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3 HTTP_ACCEPT_ENCODING gzip,deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 ibase.default_charset no value no value mssql.charset no value no value _SERVER["HTTP_ACCEPT_CHARSET"] ISO-8859-1,utf-8;q=0.7,*;q=0.7 praticamente todos, citam o utf-8... Compartilhar este post Link para o post Compartilhar em outros sites
DouglasP 1 Denunciar post Postado Agosto 25, 2009 Tenta: na hora de pegar o dado: $nome = addslashes($_REQUEST["nome"]); na hora de ler: $cidade = htmlentities(utf8_decode($row[2])); Compartilhar este post Link para o post Compartilhar em outros sites
geektr 1 Denunciar post Postado Agosto 25, 2009 ñ funcionou, vou procurar alguns scripts de formulario de email pra ver como q são.. Compartilhar este post Link para o post Compartilhar em outros sites
WarLiKe 0 Denunciar post Postado Agosto 25, 2009 KD os Headers do seu email?? Ta faltando principalmente o header Content-Type e charset e inverta a ordem de nome - email "From: $nome <$email>\r\nContent-Type: text/html; charset=utf-8" Não esqueça de verificar a codificação do restante como disse a Hinom Compartilhar este post Link para o post Compartilhar em outros sites
Mário Areias 0 Denunciar post Postado Agosto 25, 2009 Estou com uma dúvida parecida. Tudo funciona muito bem, na consulta dos dados, na inserção ao banco, tudo maravilha. O problema é quando vou gerar o relatório em PDF(utilizando FPDF). Todos os acentos ele troca por caracteres estranhos. O relatório é baseados em registros vindo do banco de dados. Exemplo: Na hora da inserção, eu coloco "Mário" No banco ele registra como "Mário" Na hora de aparecer na tela, ele mostra "Mário" No relatório feito pelo FPDF ele mostra "Mário" Não conheço muitos sobre esses formatos de linguagens, mas parece que tudo que eu fiz está em UTF-8. E o FPDF não trabalha com UTF-8 só com ISO-8859-1. Já tentei usar htmlentities, iconv, mudar o charset e não consigo resultado. Vocês tem alguma sugestão? Desde já obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
WarLiKe 0 Denunciar post Postado Agosto 25, 2009 Mário, tente usar utf8_encode e uft8_decode, um dos dois vai resolver, mas tem que ser antes de por o texto na folha de PDF. $nome = utf8_decode($nome); $pdf->addLine($nome); // só exemplo Compartilhar este post Link para o post Compartilhar em outros sites
Mário Areias 0 Denunciar post Postado Agosto 25, 2009 Mário, tente usar utf8_encode e uft8_decode, um dos dois vai resolver, mas tem que ser antes de por o texto na folha de PDF. $nome = utf8_decode($nome); $pdf->addLine($nome); // só exemplo Cara, funcionou! Eu já tinha tentando antes dessa forma: $this->Cell(15,10,utf8_decode($linha[0]),1); E não funcionou, ai tentei com: for ($i=0;$i<(mysql_num_fields($result));$i++) { $linha[$i] =utf8_decode($linha[$i]) ; } E funcionou! Valeu pela ajuda! Apesar de não participar muito, aprendo muito com os artigos aqui! Parabéns Compartilhar este post Link para o post Compartilhar em outros sites
geektr 1 Denunciar post Postado Agosto 25, 2009 cara, ja fiz di tudo, encode, decode, header, ele vai tudo certo, na tela de agradecimento sem problemas, quando acesso o webmail, o assunto, está normal...só na mensagem que acontece isso x_x to passanu raiva faiz 5 mes ja..ninguem consegue resolver Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Agosto 25, 2009 Tenta colocar este código. <? header("Content-Type: text/html; charset=ISO-8859-1"); $hoje_tmp = getdate(); $hoje = ($hoje_tmp[hours].":".$hoje_tmp[minutes].":".$hoje_tmp[seconds]); $nome = $_POST["nome"]; $cidade = $_POST["cidade"]; $estado = $_POST["estado"]; $email = $_POST["e-mail"]; $assunto_mensagem = $_POST["assunto_mensagem"]; $mensagem = $_POST["mensagem"]; $headers = "From: $email <$nome>\r\n"; $headers.= "Content-type: text/html; charset=iso-8859-1\r\n"; $enviou = mail("contato@site.com.br", $assunto_mensagem, "Nome: $nome Cidade: $cidade Estado: $estado E-mail: $email Assunto: $assunto_mensagem Mensagem: $mensagem", $headers ); if ($enviou){ echo "<b>$nome</b>, sua mensagem foi enviada com sucesso.<br>Em breve lhe responderemos."; } else { echo "<b>$nome</b>, não foi possível enviar sua mensagem.<br>Tente novamente."; } ?> Veja se funciona Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
geektr 1 Denunciar post Postado Agosto 25, 2009 ja fiz isso, não funciona :( --- não tinha notado o $headers ^^ até que fimm, funcionou http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif mais agora eu ja fiz um sisteminha que retira os acentos das palavras... mesmo assim vlw.. resolvido :) Compartilhar este post Link para o post Compartilhar em outros sites