Página 1 de 1

[DICA] Layout ficou doido de repente? Aqui tem a solução

Enviado: 22 Mai 2011, 00:12
por denisgomes
Você não odeia quando está programando em PHP (ou montando sua loja no OpenCart) e de repente, depois de uma alteração em um arquivo PHP, o layout fica todo louco como este?

Imagem

Porque isto acontece?

Este problema já aconteceu comigo várias vezes. Perdi muito tempo e arranquei muito cabelo para encontrar a causa deste problema, e agora compartilho-a com você. O problema acontece porque o editor de textos (eu quase sempre utilizo o Bloco de Notas) insere caracteres estranhos no arquivo - estes caracteres não podem ser vistos em nenhum editor de textos mas causam problemas quando a página é acessada pelo navegador de internet.

Eu não sei porquê o Bloco de Notas ou outro editor insere esses caracteres, e isso nem sempre acontece, mas a solução é bem simples. Primeiro baixe um editor hexadecimal como o XVI32, disponível em http://www.chmaas.handshake.de/delphi/f ... /xvi32.htm (o download está no final desta página). Não é necessário instalar, ele pode ser executado diretamente.

Localize o arquivo com problema. No caso da imagem acima, o arquivo com problema era o arquivo de idioma português para a página de detalhes do produto no OpenCart (/catalog/language/portuguese-br/product/product.php). Eu sei que o problema está neste arquivo porque eu modifiquei alguns textos nele.

Arraste o arquivo para o XVI32 e ele será aberto. Repare, no lado direito, que existem três caracteres estranhos (antes de "<?php").

Imagem

Estes são os causadores do problema. Basta apagá-los pressionando DEL três vezes, e em seguida salvar o arquivo. Dessa forma o seu layout volta a funcionar corretamente.

Imagem

É isso aí!

Re: [DICA] Layout ficou doido de repente? Aqui tem a solução

Enviado: 22 Mai 2011, 09:28
por m.lirangi
Poxa cara, muito legal sua dica!!
Vc esqueceu do link no final da pagina..rsrs

Uma pergunta:
Isso tb serve para quando os acentos são trocados por caracteres estranhos??
Pergunto isso pq eu instalei um módulo que não tinha tradução, então traduzi mas os caracteres vieram distorcidos.
Pode ser isso?!

Vlw .. bom domingo!

Re: [DICA] Layout ficou doido de repente? Aqui tem a solução

Enviado: 22 Mai 2011, 11:12
por denisgomes
m.lirangi, o link estava na própria postagem. Meu texto ficou um tanto confuso, por isso alterei.

Quanto aos caracteres, não, esse programa não resolve isso. Esse problema tem a ver com a página de código do arquivo da tradução. Os caracteres aparecem distorcidos porque o arquivo possui uma codificação (digamos, ANSI) e o navegador detecta outra codificação (digamos, UTF-8). O navegador detecta as codificações automaticamente, mas acho que tem um jeito de especificar isso no arquivo do template para que ele sempre exiba corretamente.

De qualquer forma a solução mais correta não é utilizar os acentos diretamente, e sim utilizar os códigos HTML certos para os caracteres acentuados (por exemplo: usar &aacute; ao invés de "á" diretamente). Assim você evita todos os tipos de problemas entre plataformas (pode acontecer, por exemplo, de a tradução funcionar corretamente em sua máquina local mas apresentar problemas em seu servidor, ou vice-versa, ou ainda funcionar no seu servidor e apresentar problemas em alguns navegadores e/ou plataformas mas não em outras).

Acho que já cheguei a comentar sobre isso aqui no fórum mas não deram muita atenção. Caso você queira converter os seus arquivos é só usar a função de localizar e substituir em qualquer editor de texto. O formato dos códigos HTML para caracteres acentuados é bem simples: "&" + "letra a ser acentuada" + "nome do acento em inglês" + ";". Por exemplo: para fazer o A maiúsculo com til (Ã) use &Atilde;. para fazer o E minúsculo com acento agudo (é) use &eacute;.

Re: [DICA] Layout ficou doido de repente? Aqui tem a solução

Enviado: 22 Mai 2011, 12:10
por Manoel Vidal
Olá Denis, parabéns por mais esta contribuição! :D
Para problemas com codificação de arquivos para utf-8 eliminando os famosos caracteres estranhos, sempre utilize um bom editor como o Notepad++ que é free e faz a codificação dos arquivos sem maiores dores de cabeça ;)

Re: [DICA] Layout ficou doido de repente? Aqui tem a solução

Enviado: 26 Mai 2011, 16:07
por rochester
UTF-8 SEM BOM no notepad++ resolve isso também... boa dica!

Re: [DICA] Layout ficou doido de repente? Aqui tem a solução

Enviado: 26 Mai 2011, 22:59
por m.lirangi
Pois então, tb uso o notepad++ há um tempinho e recentemente precisei traduzir um modulo, então peguei o mesmo arquivo em ingles, abri pelo notepad++ e editei, salvou direitinho mas qdo abro na Administração os acentos estão truncados.

Teve até um caso e fui só incluir uma palavra e aquela palavra que inclui ficou truncada e as outras não, apesar de tudo estar perfeito no arquivo... afff... deixei pra lá!

Re: [DICA] Layout ficou doido de repente? Aqui tem a solução

Enviado: 26 Mai 2011, 23:05
por rochester
As vezes o arquivo parece estar bacaninha em um editor, zuado em outro, some as letras em outro... Tem que ficar bem esperto com codificação, ainda mais em um sistema nativo de um país sem todos os nossos acentos e afins :)

Re: [DICA] Layout ficou doido de repente? Aqui tem a solução

Enviado: 26 Mai 2011, 23:18
por denisgomes
Não querendo ser chato, mas se os acentos no arquivo de tradução fossem convertidos em entidades HTML (é = &eacute; ã = &atilde;, etc) esses problemas não ocorreriam. Além do problema no arquivo em si, ainda tem o parâmetro charset nos cabeçalhos HTTP. Se o servidor detectar ou enviar o charset errado, os acentos nunca aparecerão corretamente.

Re: [DICA] Layout ficou doido de repente? Aqui tem a solução

Enviado: 10 Mar 2014, 12:29
por leandrorppo
Mais uma excelente dica @denisgomes, parabéns, o programa também é muito útil para corrigir problemas como " Cannot modify header information - headers already sent by (output started at)" causados por caracteres especiais.