Ao iniciar este blog me deparei com os vários plug-ins do Wordpress, achei isso facinante, muitas utilidades com pouquissimo trabalho.

Navegando entre as milhões de opções achei um plug-in muito interessante chamado Visitor Maps and Who’s Online. Muitas funcionalidades foram informadas e acabei sendo convencido a instalar este surpreendende extra neste pequeno blog.

Para minha felicidade a instalação foi completamente descomplicada, em alguns cliques estava com varias informações geográficas sendo disponibilizadas no Painel e sem nenhum custo adicional de um serviço pago.

Após todas estas maravilhas tive que começar a descer do céu, pois o plug-in necessida de um banco de dados de aproximadamente 30Mb que deve ser colocado na sua pasta padrão. Tudo bem até que o Felippe fez o upload do arquivo rapidinho. Então novas funcionalidades surgiram: bandeiras dos países, coordenadas, latitude e longitude. Cada vez melhorando mais.

Até que me indago sobre: Visitor Maps, correto? Aonde estão os mapas? Depois de algumas visitas, cliques, tentativas … não consegui nada !!

Então acabei o espírito aventureiro falou mais alto fui me utilizar de recursos avançados com a ajuda do nosso ilustríssimo Homem Bit, Clemar.

Cenário:

  • Wordpress 2.8.4
  • Visitor Maps 1.2.9

O problema:

A página é carregada, as localizações dos visitantes são informadas, mas o mapa de fundo não é exibido.

A pesquisa:

A partir deste problema, Clemar fez o download da imagem através do flashget e tentou abri-la, mas ocorreu o mesmo problema.

O próximo passo para diagnosticar o defeito da imagem utilizando um recurso muito útil na década de 80. Abrimos um prompt de comando e digitamos: “edit /70 imagem.jpg”

Edit DOS

Clemar verificou que o cabeçalho da imagem estava danificado, então a imagem foi alterada diretamente em seu código para tentar solucionar.

Então … Funcionou !! O visualizador do Windows conseguiu abrir a imagem sem problemas.

A nossa nova tarefa foi verificar se o arquivo que está no ftp não estava corrompido. Blz … O arquivo em perfeito estado.

A saída encontrada foi analisar o pacote de retorno do servidor para identificar o momento em que a imagem estava sendo corrompida. Para isso utilizamos um sniffer, um bem velinho, o Iris 4.0.

Com ele analisamos o tráfego:

Iris

Está explicado!! Estão sendo informados 3 CRLF de forma incorreta no cabeçalho da imagem e este foi o erro que conseguimos corrigir através do pré-histórico edit do DOS.

Mas como que descobrimos essa mágica. Nada melhor do que um pouco de teoria: part of Hypertext Transfer Protocol — HTTP/1.1 – RFC 2616 Fielding, et al. – Section 6 Response

Com este passo detectamos que o problema está no lado do servidor. Ufa, 50% a menos.

Examinando o código fonte chegamos ao class-wo-worldmap.php, um script que pega a imagem do servidor, faz algumas alterações e assim a exibe no navegador.

Após algumas horas de debug, chegamos a uma solução.

A solução:

Sabendo que o problema está na montagem do cabeçalho da imagem fomos direto ao ponto e colocando a prova todos os nossos conhecimentos de PHP, nos encontramos novamente com ob_end_clean.

Esta maravilhosa função limpa e desativa o buffer de saída, ou seja, qualquer lixo que exista é mandado embora. Como nós queremos somente o cabeçalho da imagem esta solução foi perfeita.

Um print para elucidar:

class-wo-worldmap

Conclusão:

Não temos certeza se esta é a melhor solução para o problema, ou se o desenvolvedor Mike Challis aprova.

Vamos entrar em contato e verificar a necessidade de correção, mas o nosso blog está exibindo os mapas!!