Todos os posts de Rafael Biriba

Evite surpresas com endereços curtos usando o LongURL

http://longurl.org/
http://longurl.org/

Com o aumento no uso principalmente do twitter e de outras redes sociais, o uso de urls curtas (short url) também cresceu. Junto com este crescimento, o número de golpes online usando urls falsas que apontam diretamente para sites maliciosos.

Mascarar uma url comprometida, em um dos inúmeros serviços de shorturl, é algo extremamente simples. hoje em dia…

(http://is.gd/w) é a url que aponta para o google. Ou será que não ?

Por isso, acho importante apresentar o serviço disponibilizado pela LongURL. Acessando o site http://longurl.org/, logo na página inicial, podemos utilizar o recurso extensão de url curta… Ao fazer uma consulta, ele não só mostra a url de destino (url longa), como mostra uma pré-visualização do site.

longurl-expand

Mas, o que realmente me chamou a atenção foi a ferramenta LongURL Mobile Expander, que pode ser obtida neste link: http://longurl.org/tools. Com ela você pode “extender” as urls curtas automaticamente, sem precisar entrar o tempo todo no site da longurl. Você pode obter a ferramenta como um plugin para o firefox ou como um script para o greasemonkey. Em ambos o caso, o resultado é o mesmo, como apresenta a imagem a seguir:

longurl-exemplo

Ao posicionar o mouse em cima de uma url curta, após alguns segundos, uma pequena mensagem irá aparecer com o título da página de destino e o link. Caso você ainda não fique satisfeito, é possível clicar em [more], e ir para a página do longurl onde pode-se verificar a pré-visualização do site e outras informações.

A imagem acima foi retirada do twitter, mas a ferramenta funciona em qualquer site que exiba uma url curta suportada. Mesmo que a url esteja de alguma forma camuflada num link,  ainda sim será exibida. Acesse a página http://longurl.org/static/jquery_demo.html para mais exemplos.

Atualmente a ferramenta suporta mais de 200 sites de serviços de shortener URL, dentre elas: cli.gs, migre.me, twitterurl.net, tinyurl.com, tr.im, bit.ly e etc… A lista completa está acessível em: http://longurl.org/services

Para os desenvolvedores e webmasters, existe um plugin Jquery criado pela longurl que pode ser implementado em seu site/blog. Visite a página de demonstração ou o link http://plugins.jquery.com/project/longurl para mais informações.

Share

Vulnerabilidade do site da VIVO: Seu windows pode ter sido afetado e já não ser mais seguro

De acordo com o wiki, malware é um software destinado a se infiltrar em um sistema de computador de forma ilícita, com o intuito de causar danos e roubar informção. E foi exatamente isso que aconteceu com todos os visitantes do site da vivo, no dia 08/09/2009.

Ao visitar o site da VIVO, foi requisitado a instalação de um applet, que provavelmente foi aprovado por todos, pois o arquivo malicioso era um suposto arquivo de imagem. Isso mesmo, um simples arquivo .jpeg, aparentemente inofensivo, que ocultava arquivos compactados java (JAR).

O que ele fazia ? Nada demais… Apenas alterava o arquivo HOSTS do windows. Para quem não sabe, nesse arquivo é possível mapear uma nova rota (IP) à um site que você visita. Isso significa, que se você adicionar neste arquivo um site de um banco, por exemplo www.itau.com.br, e um IP que te leve para um outro lugar, ao acessar seu navegador e digitar o endereço do itaú conforme o exemplo, você é redirecionado para um site falso.

Todos que foram “prejudicados” pelo malware, o arquivo HOSTS foi alterado, e as seguintes linhas foram adicionadas:

69.162.114.180 santander.com.br
69.162.114.180 www.santander.com.br
69.162.114.181 itau.com.br
69.162.114.181 www.itau.com.br
69.162.114.181 www.itau.com
69.162.114.181 itau.com
69.162.114.181 itaupersonnalite.com.br
69.162.114.181 www.itaupersonnalite.com.br
69.162.114.182 www.bradesco.com.br
69.162.114.182 bradesco.com.br
69.162.114.182 www.bradesco.com
69.162.114.182 bradesco.com
69.162.114.182 www.bradescoempresa.com.br
69.162.114.182 bradescoempresa.com.br
69.162.114.182 www.bradescoprime.com.br
69.162.114.182 bradescoprime.com.br
69.162.114.182 bradescocartoes.com.br
69.162.114.182 www.bradescocartoes.com.br
69.162.114.179 www.nossacaixa.com.br
69.162.114.179 nossacaixa.com.br

Se você roda linux, teste a difereça pelos ips abaixo! Se você roda windows, não acho seguro acessar o ip falso, então verifique a diferença nas imagens que coloquei no fim do post .
IP do site do banco itau VERDADEIRO: 200.196.152.40
IP do site do banco itau FALSO: 69.162.114.181

Como saber se você foi infectado ? Se você roda linux, certamente você NÃO foi infectado! (Gostei de dizer essa frase! Viva o Linux ! 🙂 ), agora se você roda com windows, abra o bloco de notas e abra arquivo digitando o caminho completo: C:\WINDOWS\system32\drivers\etc\hosts

Se no arquivo não tiver os ips e os endereços acima, você não foi infectado. Mas se tiver, basta remover todas as linhas e salvar o arquivo. Por padrão a única linha que deve ter no arquivo é (127.0.0.1 localhost), lembrando que tudo que tem “#” antes não é levado em consideração (São apenas comentários no arquivo).

Agora vem a parte triste. Eu posso jurar que NÃO entrei no site da vivo no dia 08/09, então tomem cuidado, existe outro site, ou outras formas de se obter o malware. Em uma próxima ocasião, darei algumas dicar para evitar esses tipos de problemas.

Meu pai me fez uma pergunta interessante, que vale ser respondida aqui:
Como você conseguiu descobrir isso ?
Infezlimente eu caí parcialmente no golpe. Hoje precisei pagar um boleto, então entrei no site do itaú, digitei minha agência e conta, e logo depois a senha eletrônica, foi então que eu entrei numa tela (como mostra uma das figura a baixo) solicitando que eu digita-se TODAS as posições numéricas do meu cartão de segurança para recadastramento!

Eu ja sabia disso, mas no próprio cartão, está escrito: “O itaú nunca solicita o recadastramento deste cartão”, foi quando me dei conta do golpe e ao procurar mais detalhes no google, rapidamente descobri que esse golpe está associado a um malware e que muitas pessoas já cairam nele, e o pior, a maioria está com esses “IPs Maliciosos” no seu computador , alguns também já está com sua conta bancária comprometida e essas pessoas nem sabem sobre o golpe!

Então é isso aí! Divulguem para seus amigos e familiares, peçam para verificar o arquivos de hosts do windows. Muito em breve postarei algumas soluções e dicas para evitar esse tipo de problema.

O ato de enganar o usuário para obter informação desta maneira se chama Phishing. Aproveito para esclarecer, que o malware foi introduzido no site da VIVO por hackers, então não pense que foi a VIVO que fez essa “maldade”. Foi apenas uma falha de segurança. Quanto aos bancos, não acho que eles tenham alguma coisa a ver com isso também.

Agora os peritos tem que analisar o IP, e descobrir o dono do servidor que mantém esses sites fraudulentos. Numa pequena pesquisa que fiz, descobri que esse IP (69.162.114.181) vem de um servidor localizado na cidade de DALLAS – United States. A empresa responsável é a Limestone Networks (www.limestonenetworks.com). Agora só resta que essa empresa forneça os dados cadastrais, forma de pagamento, numero do cartão de crédito, e etc…, da pessoa que alugou o servidor, e estaremos bem perto dos culpados. Mas, como a empresa é estrangeira e os dados só podem ser obtido por processo jurídicos, isso vai demorar muito !

Logo abaixo vocês pode conferir algumas imagens que extraí do site falso do itaú. (Clique nas imagens para visualizar em formato maior )

itau-verdadeiro-smallSite Verdadeiro do Itaú

itau-falso-smallSite Falso do Itaú

itau-falso-cadastro-cartao-smallTela falsa solicitando os códigos de segurança


Só para reforçar, não esqueça de informar seus amigos e parentes… Eles já podem ter sido enganados pelo sistema falso, e precisam entrar em contato com o banco imediatamente para mudar as senhas e códigos…

Share

WordPress: Enviando posts para o Twitter

 

http://www.twitter.com
http://www.twitter.com

Procurar plugins para integrar o twitter com o wordpress é fácil. Saber qual e como usar é o difícil.

Se você procurar por twitter no banco de plugins (http://wordpress.org/extend/plugins/search.php?q=twitter), vai receber mais de 28 páginas com plugins que fazem de tudo.

No meu caso, procurei por um plugin que enviasse ao meu twitter o título e o link toda vez que eu criasse um novo post.

Selecionei aleatoriamente vários na listagem, dando proferência aos mais recomendados e apenas 2 chamaram minha atenção:

WP to Twitter: http://wordpress.org/extend/plugins/wp-to-twitter/

Tweetable: http://wordpress.org/extend/plugins/tweetable/

Qual dos dois é o melhor ? Bom, eu não saberia dizer, sem antes fazer testes nos 2 plugins. Se trocar a pergunta para, qual dos dois é o mais “usual” ?, então afirmaria com toda a certeza que é o Tweetable.

O WP to Twitter possui muitas configurações que não são simples de cadastrar. Por exemplo, para encurtar a URL você precisa se cadastrar no site cli.gs ou no bit.ly, e depois fornecer ao plugin seu usuário e sua “key” de acesso.

Já o Tweetable possui configurações são bem intuitivas e distribuidas em passos. Por motivos de segurança e identificação, ele acessa o twitter como uma aplicação, o que requer um cadastro complementar. O plugin se encarrega de  redirecionar você até a página de cadastro de aplicação do twitter e depois o traz de volta. Feito isso o plugin está pronto para o uso.

Agora nós temos uma balança equilibrada. O Tweetable usa alguns serviços como tr.im e tinyurl.com e é fácil de configurar. O WP to Twitter possui apenas o cli.gs e bit.ly, não é tão simples de gerenciar mas seus serviços de URL Shortener são excelentes.

http://twitter.com/rafaelbiriba

Você está usando algum outro, deixe sua opnião e conte-nos como funciona. Existem muitos plugins que prometem fazer coisas, mas não cumprem nem a metade.

Eu escolhi o Tweetable usando tr.im. Cabe a você agora decidir qual usar…

Share

Novas oportunidades para estágio na Globo.com – Atualizado

http://talentos.globo.com/talentos/
http://talentos.globo.com/talentos/

O programa de estágio da Globo.com está aberto e as inscrições poderão ser feitas até dia 29 de setembro de 2009.

Não perca essa oportunidade de estagiar numa empresa conceituada no ramo de internet.

Etapas do processo seletivo:
Inscrições: 24 de agosto a 29 de setembro
Prova On-line: 02 a 26 de outubro (Prorrogado até o dia 03/novembro)
Entrevista Coletiva: 02 a 09 de novembro
Painel: 13 a 25 de novembro
Entrevista com o Gestor: 16 a 27 de novembro
Admissão: 04 de janeiro

—–
Atualizado em 27/10/2009: A etapa de prova online foi prorrogado até o dia 03/11. Agradecimentos ao Brawner pela dica fornecida!
—–

Informações úteis:
Leia mais sobre o perfil do estag em http://talentos.globo.com/talentos/perfil-estag/

Existem vagas para que áreas?
Vagas de estágio para os seguintes cursos:
Administração, Comunicação Social (Publicidade e Propaganda, Jornalismo, Multimídia, Rádio e TV, Relações Públicas), Desenho Industrial, Estatística, Ciências Contábeis, Engenharia de Produção e todos os cursos da área de Tecnologia (Informática, Análise de Sistemas, Processamento de Dados, Engenharia da Computação/Telecomunicações/Sistemas e etc).

Quem já participou do processo e não foi aprovado, pode participar novamente, desde que atenda aos pré requisitos.

Baseado nos comentários que recebi aqui no blog do último processo seletivo, abaixo segue algumas dúvidas que “vale a pena ver de novo”:

– Como é a prova online ?
Composta por Raciocínio lógico,  Português, Inglês e conhecimentos da Internet.
Não há simulados para isso, a dica é para você fazer uma prova por dia, assim não fica muito complicado. Cada teste online tem um tempo máximo de resposta, então quando for fazer as provas, certifique-se que você poderá ir até o final.

– Como é a entrevista coletiva ?
Geralmente é feito uma dinâmica em grupo, e depois vocês fala pouco sobre sua vida, o que faz e o que sabe fazer. Fique calmo e sairá bem !

– Como é  painel ?
Etapa onde é feito a entrega de algumas documentações. É feito também um estudo de caso acompanhado por alguns gestores. Dê uma olhada em http://pt.wikipedia.org/wiki/Caso_estudo

– Como é a entrevista com o gestor ?
Etapa final do processo. Momento mais importante de toda a seleção, onde deve “vender o seu peixe” mostrando sua capacidade tanto técnica, quanto profissional.

– Como se comportar e agir numa dinâmica ?
Bom, essa foi uma das perguntas mais difíceis. Agindo naturalmente, você se sentirá mais confortável.

Confira as outras perguntas do último processo seletivo, clicando aqui.

Outras dicas: Antes de ir para as entrevistas, pesquisem mais sobre a área em que você está se candidatando. Para a área de tecnologia, acho essencial algum conhecimento sobre  scrum, visto que algumas dinâmicas são baseadas nesta medotologia.  ( Links úteis: http://agilblog.locaweb.com.br/2008/05/23/scrum-entidades-do-scrum/ e http://improveit.com.br/scrum)

Enfim, boa sorte para todos ! Qualquer dúvida, só perguntar. 😉

Share

Evento recomendado: Dev in Rio 2009

 

http://www.devinrio.com.br/
http://www.devinrio.com.br/

O evento (www.devinrio.com.br) que acontece no dia 14 de setembro, traz excelentes conteúdos  para a área de tecnologia.

 alt=De acordo com o blog de um dos organizadores (Guilherme Chapiewski), a programação conta com três palestrantes nacionais e três internacionais falando sobre Open Source, Java, Ruby on Rails, Django e desenvolvimento ágil de software.

A inscrição está saindo por R$ 65,00 e pode ser feitas através deste link: http://devinrio.com.br/inscricoes_bra.php. Se você acha caro, dê uma analisada no conteúdo do evento e verá que vale a pena o investimento. Dá para pagar em até 15x no cartão de crédito.

Abaixo segue uma mini-agenda do evento. A agenda completa pode ser conferifa no site do evento (www.devinrio.com.br)

Agenda:

08:30 h: Credenciamento e visita aos estandes
09:30 h: Abertura Oficial (Guilherme Chapiewski e Henrique Bastos)
10:00 h: … Comunidades do Joomla! e Open Source estão mudando o mundo! … (Ryan Ozimek)
11:00 h: O Java está morto? (Guilherme Silveira e Nico Steppat)
12:00 h: Intervalo para almoço
13:30 h: Ecossistema Ruby on Rails (Fabio Akita)
14:30 h: Django: o framework web para perfeccionistas com prazos (Jacob Kaplan-Moss)
15:30 h: Intervalo
16:00 h: Desenvolvimento ágil e iterativo de produtos – a confirmar (Jeff Patton)
17:00 h: Bate-papo com os participantes! (Vinicius Manhães Teles)
18:00 h: Encerramento e #Horaextra

Dev in Rio 2009Se você trabalha/estuda na área de tecnologia, está mais do que convidado à participar do evento.
Não esqueça de chamar seus amigos
.
De acordo com o Guilherme, as vagas estão sendo preenchidas mais rápido do que o planejado, então corra e garanta logo a sua.

😉 Vejo vocês lá ! 😉

Share

Ubuntu: Configurando teclado ABNT2 no vmware-server-console

http://www.vmware.com/
http://www.vmware.com/

 

Um dos problemas que eu acho extremamente chato, é não poder usar as setas, o ctrl, a barra e outras teclas não habilitadas no vmware-server-console. Você pode ler sobre a instalação do console no ubuntu, clicando aqui.

Se você der uma pesquisada no google, rapidamente vai encontrar formas de resolver o problema. Uma delas é fazer o mapeamento das teclas que devem ser inseridas na configuração do vmware.

A questão é onde está o arquivo de configuração. Isso depende de como você instalou o vmware.
No meu caso está em /etc/vmware-server-console/config.

Adicionem as seguintes linhas no final do arquivo de configuração:
(OBS: Tem que ser root para fazer a alteração e certifique-se que o vmware não está aberto)

xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78 = 0x46 # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu
xkeymap.keycode.97 = 0x073 # Slash

Se você não achou o arquivo de configuração, veja algumas outras possibilidades:
.vmware/config
,
~/vmware/preferences
,
/etc/vmware/config,
/usr/lib/vmware/config

Espero ter ajudado… 😉

Share

Ubuntu: Instalação do vmware-server-console

http://www.vmware.com/
http://www.vmware.com/

Sempre que preciso, eu perco algum tempo em procurar e instalar vmware-server-console.
Então resolvi postar para facilitar. 🙂

Primeiro, faça o download pelo site do vmware (http://download3.vmware.com/software/vmserver/VMware-server-linux-client-1.0.9-156507.zip), onde você deve extrair o pacote (23mb) para obter o VMware-server-console-1.0.9-156507.tar.gz

Ou então, baixe o pacote direto pelo link do meu blog: (apenas 9 mb 😉)
https://rafaelbiriba.com/VMware-server-console-1.0.9-156507.tar.gz

Ou apenas siga os comandos abaixo pelo terminal:

wget http://www.rafaelbiriba.com/VMware-server-console-1.0.9-156507.tar.gz
tar -zxvf VMware-server-console-1.0.9-156507.tar.gz
cd vmware-server-console-distrib/
sudo ./vmware-install.pl

Caso tenha alguma dúvida/problema na instalação, verifique o link: http://help.ubuntu.com/community/VMware/Server na seção VMware Server Console Installation ou pergunte por aqui mesmo. 😉

Share

Gravatar: Sua foto nos comentários do WordPress

gravatarApós comentar em vários blogs e também de receber e responder os comentários do meu blog, me dei conta que a maioria não possuem fotos.

O motivo principal talvez seja o baixo número de comentários feitos, que não desperta vontade/interesse na pessoa em utilizar uma foto.

Mas prefiro acreditar que o motivo é a falta de informação, então resolvi postar sobre o Gravatar. ( http://www.gravatar.com/ )

O Gravatar é uma forma simples da sua foto seguir você de site em site, aparecendo ao lado de seu nome, principalmente utiliza-do nos comentários de blogs, neste caso, o wordpress.

Criando uma conta:
Acesse o site do gravatar e clique em Sign up now!
Depois basta colocar um email, e preencher o restante do formulário.

Após criar a conta, acesse seu painel (na opção Log in) onde você tem a opção de adicionar outros emails e fotos.
O serviço consiste em você escolher qual foto deseja associar a cada endereço de email, podendo ter uma foto para vários emails, ou fotos diferentes para emails diferentes.

Para usar sua foto, é ainda mais fácil, basta comentar em algum blog ou site compatível com o serviço, informando um dos emails cadastrados no gravatar. Sua foto será exibida automaticamente de acordo com o que você definiu.

Não é possível escolher quando a foto deve aparecer ou não. Uma vez informado o email, o site/blog irá consultar o gravatar e exibir a foto associada (se houver alguma).

De acordo com a documentação do wordpress: http://codex.wordpress.org/Using_Gravatars
O Gravatar foi definido como padrão a partir da versão 2.5, porém alguns themes/templates podem não ter compatibilidade ou não ter a funcionalidade implementada.

Se você se encaixa num desses quadros (wordpress antigo ou template sem suporte), não há muito o que fazer. Apenas seguir a documentação e inserir direto no código(php) da página de comentários.

Espero que com essa informação, possamos ver as fotos dos comentaristas no lugar das imagens de “Sem foto”… 🙂

Share

Liberdade aos desenvolvedores: Atualize seu Navegador

 

http://www.atualizeseunavegador.net/
http://www.atualizeseunavegador.net/ | http://www.updateyourbrowser.net/

 

Navengando um pouquinho em blogs de amigos, encontrei o AtualizeSeuNavegador.net. O site informa ao usuário diversos pontos ruins ao utilizar um navegador desatualizado !

Mas especificamente, o site foi feito para os usuários do Internet Explorer 6 atualizar seus navegadores ! Para explicar melhor, eis o trecho retirado do site:

Navegadores antigos como o Internet Explorer 6 (lançado em 2001) não exibem sites dentro dos padrões web, são repletos de bugs, não oferecem as funcionalidades dos browsers atuais como navegação por abas ou gerenciador de downloads e estão submetidos a sérios problemas de segurança como vírus e malware.

Ainda comprometem a qualidade da exibição de sites e limitam a criação de desenvolvedores, que precisam perder tempo adaptando o site para rodar nesses navegadores obsoletos.

De acordo com as estatísticas do meu blog, os usuários de IE6 correpondem a 20% das visitas, seguido de IE7: 16%, IE8: 5%, Firefox: 55% e Outros: 14%.

Como o IE6 está fora dos padrões web, ao fazer um site qualquer, há uma certa preocupação no lado do desenvolvedor em adaptar o site para ser compatível com o IE6. Se você reparar com atenção, verá que o tema do seu blog possui um css específico para o IE6.

Para o usuário final, isso não faz a menor diferença (com exceção das falhas de segurança), mas para o desenvolvedor isso é uma limitação, uma “dor de cabeça”, que pode ser eliminada !

Ajude a divulgar a idéia do Atualize seu navegador, e vamos rapidamente acabar com o Internet Explorer 6 ! (Liberdade aos Desenvolvedores 🙂 )

Para fazer parte desse movimento basta inserir o código javascript abaixo, assim quando um usuário IE6 entrar no seu site, vai aparecer a seguinte barrinha:

updateyourbrowser-exemplo

Insira o código da barrinha dentro do <head> do seu site:

<script type="text/javascript" src="http://updateyourbrowser.net/asn.js"> </script>

Ou se preferir, insira o código do banner em seu site ou blog:

<a href="http://updateyourbrowser.net/" title="Atualize seu
Navegador"><img src="http://updateyourbrowser.net/asn.jpg"
border="0" alt="Atualize seu Navegador" /></a>

Atualize seu NavegadorBom, para mais informações visite:

http://www.updateyourbrowser.net/ ou http://www.atualizeseunavegador.net/

 

Querem uma dica ? Instalem o navegador Firefox ! Seguro, rápido e simples ! Ainda mais agora com a nova versão 3.5, ainda mais rápido ! Aproveite 🙂

Share

PHP: Arquivo de log personalizado

 

PHP: http://www.php.net/
PHP: http://www.php.net/

Semana passada, estive fazendo num pequeno site, uma área de login. Foi então que fiz uma funçãozinha no PHP que gera logs diários dos eventos ocorridos desde o login até o logoff, como por exemplo, ações tomadas pelos usuários na parte administrativa.

Abaixo, vocês poderão conferir o código que utilizei, logicamente adaptado para que fosse publicado aqui.

Os arquivos de log são gerados baseado no dia em que se encontra. Como os arquivos estão em formato .txt, utilizei um prefixo no arquivo, para que o acesso não seja tão óbvio por pessoas desautorizadas.

A função armazena no arquivo a hora da ocorrência, seguido pelo IP da máquina do cliente e a mensagem definida por você.

Vamos então seguir para o código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
date_default_timezone_set('America/Sao_Paulo');
 
function Logger($msg){
 
$data = date("d-m-y");
$hora = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
 
//Nome do arquivo:
$arquivo = "Logger_$data.txt";
 
//Texto a ser impresso no log:
$texto = "[$hora][$ip]> $msg \n";
 
$manipular = fopen("$arquivo", "a+b");
fwrite($manipular, $texto);
fclose($manipular);
 
}
 
?>

Salve o arquivo acima como logger.php

Na linha 3 estou declarando o timezone para São Paulo, mesmo estando no Rio de Janeiro, o horário é o mesmo. Isso serve para configurar a data para minha localidade, já que no meu caso, o servidor se encontra em outro fuso horário.

Nas linhas 7, 8 e 9 estou declarando as variáveis de data, hora e ip da máquina que gerou o log (cliente).

Na linha 12 está o nome do arquivo. Será algo do tipo Logger_19-06-2009.txt (dia-mês-ano). Caso deseje armazenar o log em uma pasta já existente, altere a linha para:
$arquivo = “minhapasta/Logger_$data.txt”;

Na linha 17 está a função de abertura do arquivo.  Passando o “a+” como parâmetro, apenas nos dias que tiver alguma coisa para ser inserida no log, é que o arquivo será criado ou se já existir, escreverá o registro no fim do arquivo. O parâmetro “b” serve para questões de portabilidade ( inserção recomendado no manual do php )

As linhas 18 e 19 manipulam e fecham o arquivo definido na linha 12.

Agora vamos para o código onde vamos utilizar nossa função:

1
2
3
4
5
6
7
8
9
<?php
 
include "logger.php";
 
Logger("Testando a função logger !");
Logger("Como você pode ver, estou logando uma informação !");
Logger("Teste 1, Teste 2, Teste 3!");
 
?>

Salve o arquivo acima como teste.php na mesma página onde se encontra o logger.php.

Pronto. O Script acima gera 3 saídas consecutivas no seu arquivo de log.
Conferindo o resultado:
Nome do arquivo gerado:
Logger_19-06-09.txt

Conteúdo:
[21:57:36][201.7.xxx.xxx]> Testando a função logger !
[21:57:36][201.7.xxx.xxx]> Como você pode ver, estou logando uma informação !
[21:57:36][201.7.xxx.xxx]> Teste 1, Teste 2, Teste 3!

Bom, espero que o script sirva para mais alguém. 🙂

===========================================

Atualização em 13/abril/2011

A leitora Renata nos comentários de hoje (13/04/11) deixou uma dúvida muito boa… Vale a pena editar a matéria e acrescentar a solução dela aqui…

Ela estava encontrando problemas para centralizar os arquivos de log em um só lugar. Ela trabalhava com pastas para organizar seus arquivos, e ao incluir a função logger nos arquivos, fazia com que os logs fossem gravados separadamente em cada pasta.

Por que isso ocorreu ?

Ela estava incluindo a função da maneira correta: include “../logger.php”; mas o problema estava mesmo dentro da função Logger.

Na variável $arquivo, onde definimos o nome do arquivo de log, a função parte do princípio que o arquivo .txt está do lado do arquivo .php que contém a função…

Consideremos o seguinte path de diretórios:

/
/logs/Logger.txt
/logger.php
/folder1/pagina1.php

Ao incluir a função logger de dentro da “pagina1”, chamando a função como a Renata fez (“../logger.php”), faz com que ao definir a variavel $arquivo = “teste.txt” o PHP vai salvar o arquivo dentro da pasta “folder1” pois ele interpreta o codigo a partir daquele contexto.

Para resolver isso, ao entrar na função Logger, voce precisa mudar o contexto da execução para ele salvar o log corretamente na pasta log (independente de onde ela estiver), e no final da função, você precisa voltar o contexto para onde ele estava, para evitar possiveis problemas.

Segue então o novo código que resolve o problema:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
 
date_default_timezone_set('America/Sao_Paulo');
 
function Logger($msg){
 
//pega o path completo de onde esta executanto
$caminho_atual = getcwd(); 
 
//muda o contexto de execução para a pasta logs
chdir("/home/rafaelbiriba/public_html/logs");
 
$data = date("d-m-y");
$hora = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
 
//Nome do arquivo:
$arquivo = "Logger_$data.txt";
 
//Texto a ser impresso no log:
$texto = "[$hora][$ip]> $msg \n";
 
$manipular = fopen("$arquivo", "a+b");
fwrite($manipular, $texto);
fclose($manipular);
 
//Volta o contexto de execução para o caminho em que estava antes
chdir($caminho_atual);
 
}
 
?>
Share