Hansley 1 Denunciar post Postado Julho 30, 2009 Galera eu tenho um sistema de comentarios e me sugeriram que colocasse o "htmlentities" para retirar o html e evitar JS e etc.. uso assim: $msg = (htmlentities($_POST['mensagem'])); mas agora os acentos não estão fucionando! ficam assim: éá algm sabe como resolver ? Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Julho 30, 2009 Hansley, Experimenta colocar o seguinte código no topo: header("Content-Type: text/html; charset=utf-8"); Abs. ;) Galera eu tenho um sistema de comentarios e me sugeriram que colocasse o "htmlentities" para retirar o html e evitar JS e etc.. uso assim: $msg = (htmlentities($_POST['mensagem'])); mas agora os acentos não estão fucionando! ficam assim: éá algm sabe como resolver ? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 30, 2009 isso é erro de codificação. A solução é simples: usar a mesma codificação em tudo: codificação de arquivo (definida no editor de texto), codificação do banco de dados e codificação do HTMl de saída. Apenas inserir o header() pode não adiantar. Tem que unificar todas as codificações Compartilhar este post Link para o post Compartilhar em outros sites
Fernando Rodrigo Cardoso 2 Denunciar post Postado Julho 30, 2009 http://br2.php.net/html_entities , Como terceiro parâmetro você pode informar o charset em html_entities(), Note : Atualmente, o conjunto de caracteres ISO-8859-1 é usado com o padrão. echo htmlentities($str, [b][font="Courier New"]ENT_COMPAT[/font][/b], 'UTF-8'); []'s Compartilhar este post Link para o post Compartilhar em outros sites
Hansley 1 Denunciar post Postado Julho 30, 2009 Hansley, Experimenta colocar o seguinte código no topo: header("Content-Type: text/html; charset=utf-8"); Abs. ;) --> Ja tem cara, ta assim : <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> isso é erro de codificação. A solução é simples: usar a mesma codificação em tudo: codificação de arquivo (definida no editor de texto), codificação do banco de dados e codificação do HTMl de saída. Apenas inserir o header() pode não adiantar. Tem que unificar todas as codificações --> Para ser sicero nao entendi muito bem! Pode esplicar melhor ? http://br2.php.net/html_entities , Como terceiro parâmetro você pode informar o charset em html_entities(), Note : Atualmente, o conjunto de caracteres ISO-8859-1 é usado com o padrão. echo htmlentities($str, [b][font="Courier New"]ENT_COMPAT[/font][/b], 'UTF-8'); []'s --> Pode Falar mais sobre isso tambem parceiro ? Sou leigo ainda em PHP. *Bom, agradeço a todos que estao tentando me ajudar e o site no qual estou tendo esse problea é www.josewalter.com Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 30, 2009 os arquivos possuem codificação, que é interpretada pelo Sistema Operacional Essa codificação é definida no editor de textos. A codificação do HTML de saída é a que está usando, com meta tag ou com header(), do PHP e o BD também tem codificação, também chmada de collation todas elas devem ser iguais. isso evita esse tipo de problemas de exibição Compartilhar este post Link para o post Compartilhar em outros sites
Hansley 1 Denunciar post Postado Julho 30, 2009 Bom Beraldo eu uso o Notepad++ e coloquei em "formatar" e tem Codificação UTF-8 e no phpmyadmin ta em utf8_unicode_ci Devo mudar alguma coisa ? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 30, 2009 não deixe tudo em utf-8. Todos os arquivos, todas as tabelas do BD e todas as meta tags. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Ajarilla 0 Denunciar post Postado Julho 31, 2009 Beraldo, Tenho um problema semelhante ao do Hansley, onde todas as informações preenchidas em formulário aparecem com as mesmos erros de acentuação no BD. Inicialmente pensamos ser a página enviando com codificação errada, porém me instruiram a utilizar a opção "print_r($_POST);" e verificamos que os dados estão sendo enviados com acentuação correta, distorcendo provavelmente no BD. Meu editor e a saída estão todos em UTF-8. Porém tenho: Collation de conexão do MySQL -> utf8_unicode_ci Collation das tabelas relacionadas a infos de cadastro: latin1_swedish_ci Pode ser esse latin1 o problema? Pode dar algum problema mudar a linguagem da tabela? Grato! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 31, 2009 você está usando duas codificações. O problema provavelmente é esse. Deixe tudo em utf-8 Compartilhar este post Link para o post Compartilhar em outros sites
Victor Ajarilla 0 Denunciar post Postado Julho 31, 2009 Tentei mudar o collation da tabela para UTF8_unicode_ci, não funciona! O que mais ta me quebrando a cabeça é o seguinte: Em um DB acontece este problema que eu te falei. Já em outro, acontece semelhante, onde as informações aparecem distorcidas no DB. PORÉM, na hora de serem mostradas na página, a acentuação aparece normal. Ou seja, fiquei na seguinte situação: Em um DB, a página puxa as informações distorcidas do DB e as mostra distorcida; Em outro DB, a página puxa as informações distorcidas do DB e as mostra com acentuação normal. Diante da situação, procurei comparar as codificações nas duas situações. Todas as informações estão iguais, tanto no collation do DB quando nas páginas, tendo o charset=utf8. Alguma idéia? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 31, 2009 não adianta só mudar. tem que remontar o banco. Pois as informações foram salvas em collation diferentes. Não basta só mudar o collation atual. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Ajarilla 0 Denunciar post Postado Julho 31, 2009 Certo Beraldo, Infelizmente sou um pouco leigo para fazer isso. Vou entrar em contato com a pessoa que meche mais a fundo e volto a postar quando o fizermos. Obrigado por enquanto! Compartilhar este post Link para o post Compartilhar em outros sites
Victor Ajarilla 0 Denunciar post Postado Julho 31, 2009 Beraldo, Aproveitando meu último post, você faz alguma idéia de porque existem aquelas duas situações distintas? Digo em relação a seguinte situação: Dois DB's com linguagens iguais e mesmas distorções. Em um, a página puxa os dados e ilustra distorcido. Em outra, a página puxa os dados e ilustra normalmente. Eu entendi remontar o banco como mudar a linguagem e inserir um novo cadastro para verificar o comportamento. Já o fiz e o problema permanece. Compartilhar este post Link para o post Compartilhar em outros sites
Hansley 1 Denunciar post Postado Julho 31, 2009 não deixe tudo em utf-8. Todos os arquivos, todas as tabelas do BD e todas as meta tags. Então o que você me aconselha fazer ? e lembrando que ele começou a ficar assim depois que coloquei o "htmlentities", antes fucionava normal os acentos! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 31, 2009 Beraldo, Aproveitando meu último post, você faz alguma idéia de porque existem aquelas duas situações distintas? Digo em relação a seguinte situação: Dois DB's com linguagens iguais e mesmas distorções. Em um, a página puxa os dados e ilustra distorcido. Em outra, a página puxa os dados e ilustra normalmente. Eu entendi remontar o banco como mudar a linguagem e inserir um novo cadastro para verificar o comportamento. Já o fiz e o problema permanece. Está usando algum programa para visualizar o banco? Se sim, pode ser a codificação dele.Se está usando linha de comando, depende da codificação do sistema operacional. Então o que você me aconselha fazer ? e lembrando que ele começou a ficar assim depois que coloquei o "htmlentities", antes fucionava normal os acentos! Então por que quer usar htmlentities()?Com urf-8 não precisa usar essa função Compartilhar este post Link para o post Compartilhar em outros sites
Hansley 1 Denunciar post Postado Julho 31, 2009 Bom Beraldo é porque alguem colocou um comentario com javascript que redirecionava para outro site. Então pedi ajuda em uma comm de web de como evitar isso, ai me aconselharam htmlentities.. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 31, 2009 se é só para retirar tags, pode usar htmlspecialchars(), pode usar strip_tags... ou pode montar algo personalizado, usando str_replace ou preg_replace Compartilhar este post Link para o post Compartilhar em outros sites
Hansley 1 Denunciar post Postado Julho 31, 2009 Vlw cara usei strip_tags mesmo e deu certo! Aproveitando aqui o topico me tira uma duvida: se eu quizer usar assim, para digitar na mensagem [ b ] (sem espaço) e colocar str_replace para < b > depois da strip_tags da certo ? se é que me entende.. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Julho 31, 2009 tem que usar strip_tags antes, senão o < b > será removido Compartilhar este post Link para o post Compartilhar em outros sites