Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ebotega

Erro com nl2br, não respeita os parágrafos

Recommended Posts

remova o uso da função utf8_decode, pois é desnecessária para o seu caso.

 utf8_decode($descricao)

 

 

exemplo, a partir do script que postou no post #20

if ( isset($_POST['descricao']) )
{
  $descricao  = addslashes( $_POST['descricao'] ); // ´proteção básica para evitar sql injection. 

  $sql = "INSERT INTO respostas (resposta, perguntas_cod_pergunta, cod_usuario, tipo_usuario, data_cadastro) VALUES ('". $descricao ."', ". $post .", ". $cod_usuario .", '". $tipo ."', now())";

  // echo $sql; exit; // imprime a query para testes.

  if ( mysql_query($sql) or die(mysql_error()) )
     echo "resposta ok";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

removi o utf8_decode e coloquei o exemplo que você mostrou, quando inseri a string "ação" no echo $sql imprimiu "INSERT INTO respostas (resposta, perguntas_cod_pergunta, cod_usuario, tipo_usuario, data_cadastro) VALUES ('ação', 6, 10, 'art', now())".

 

Veja que aparece certo no insert, mas no banco fica "ação" e a estrutura do banco, no colltion, está utf8_general_ci.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, parece que agora no php está tudo certo.

 

 

 

1. Qual front-end está utilizando ?

Nos posts anteriores você comentou estar usando MySQLWorkbench e PHPMyAdmin

 

2. Qual idioma nativo do sistema operacional (windows xp professional) ?

 

3. Poste a ddl da tabela.

Utilize o MySQLWorkbench para exportar somente a estrutura.

 

As tabelas que não possuírem uma definição, herdarão o padrão ou definição da base.

Na estrutura deve vir algo do tipo

ENGINE=InnoDB DEFAULT CHARSET=utf8

 

Note que o aconselhável é utilizar o tipo "utf8 - default collation"ut8defaultcollationmysq.png

 

esse screen shot é da versão 5.2 do workbench conectado no mysql 5.5.8

Compartilhar este post


Link para o post
Compartilhar em outros sites
1. Qual front-end está utilizando ?

Nos posts anteriores você comentou estar usando MySQLWorkbench e PHPMyAdmin

são estes dois mesmos e, eventuamente, Toad for MySQL. Para desenvolvimento o dreamweaver e notepad++

 

2. Qual idioma nativo do sistema operacional (windows xp professional) ?

português.

 

Sobre o collation do banco, consultando no MySQLWorkbench aparece com default_collation também.

 

 

Algumas versões pra gente ter uma ideia...

 

Estou usando o XAMPP: 1.7.4

PHP: 5.3.5

phpMyAdmin: 3.3.9

 

Estanho que entrei na index do xampp para ver a versão e na aparecem caracteres "estranhos", acho que porque mudei o padrão do banco de latin1 para utf8...

Compartilhar este post


Link para o post
Compartilhar em outros sites

no post #22

Veja que aparece certo no insert, mas no banco fica "ação" e a estrutura do banco, no colltion, está utf8_general_ci.

 

quando você diz que "mas no banco fica "ação"", a quê se refere ?

qual meio está utilizando para ler os dados do banco ?

é por meio do php ou de algum mysql front-end?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu visualizar essa informação no banco via phpmyadmin ou select com mysql-toad aparece "ação". Se eu der um simples echo na variável que recebe essa informação no banco, imprime certo: "ação".

 

A situação acima é quando eu não tenho utf8_decode no insert e estou dando o echo sem htmlentities. Se eu colocar utf8_decode no insert, a palavra "ação" vai com acento no banco, daí tenho que usar htmlentities para imprimir certo.

 

Li recentemente que utf8_decode serve para decodificar um valor utf8 e convertê-lo para iso-8859-1. Já que, quando uso utf8_decode vai certo para o banco e isso codificaria a minha palavra "ação" de utf8 para iso-8859-1, é como se o banco ainda estivesse no formato latin1, mesmo não sendo o que me apresenta no phpmyadmin...

 

:huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. utilize o mysqlworkbench para ver como ele apresenta os caracteres

 

2. como está o código php que faz conexão ao banco?

mysql_connect()

mysql_select_db()

pode ser que tenha algo nesse meio ou em algum ponto do script que esteja causando o conflito.. isso é comum acontecer quando faz testes de depuração e esquece de remover linhas de testes

 

3. as configurações do mysql são as definições padrão da instalação ?

 

4. na página php que exibe os dados do banco, como está a configuração do charset ?

lembre-se que tanto para inserir quanto para exibir, todos os arquivos devem estar com o mesmo charset.

 

5. voltando ao post #23, faltou a questão 3

Poste a ddl da tabela.

Utilize o MySQLWorkbench para exportar somente a estrutura.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.