Primeiramente, gostaria de desejar a todos os leitores e amigos que acompanham meu blog:
Um feliz natal e um próspero ano novo !
Entrando nesse ritmo de natal e ano novo, desenvolvi um pequeno código em javascript para desejar feliz natal e ano novo para os leitores do meu blog.
O código está realmente simples, e pode ser alterado e utilizado aonde quiser… Só não esqueça de deixar sua opnião nos comentários abaixo!
O script funciona da seguinte maneira: 3 variáveis são definidas no inicio: Data atual (var agora). Data do ano novo (var anoNovo). Data máxima de exibição (var anoNovoMax).
O alert com a mensagem será exibida enquanto a data atual estiver dentro do intervalo das outras 2 datas.
Abaixo segue o código:
<script language="JavaScript">var agora =newDate();var anoNovo =newDate(2010,0,1,0,0,0,0);var anoNovoMax =newDate(2010,0,1,23,59,59,0);if(agora >= anoNovo && agora<anoNovoMax){
alert("Feliz ano novo !");}</script>
Para implementar no wordpress, é bem simples: Adicione um Widget de texto em seu wordpress, e sem atribuir um titulo, insira o codigo javascript diretamente no campo de baixo “descrição”. Fazendo isso, o widget não ficará visível, mas o código vai funcionar… 🙂
Para implementar em seu site: Basta inserir o javascript em sua página.
Dica: Como o javascript pega a data da máquina do cliente, você corre o risco de pegar a data errada. Uma solução seria usar o PHP para definir a data, ou seja, seria a data atual seu servidor. Exemplo:
var agora = new Date(<?phpechodate("Y, m, d, H, i, s");?>);
Então é isso… Façam bom proveito !
Aqui no blog, já está implementado as mensagens de Feliz Natal e Feliz Ano Novo… Serão exibidas durante todo o dia 25 e 01, respectivamente ! Visitem o Blog e confiram ! 😉
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ê.
<?phpdate_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
<?phpinclude"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…
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.
<?phpdate_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 logschdir("/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 anteschdir($caminho_atual);}?>
É muito comum após concluir todo e desenvolvimento de um projeto PHP, alguns error serem mostrados na tela, como um E_WARNING ou E_NOTICE. Isso pode ocorrer por muitos motivos, como indisponibilidade temporária no acesso ao banco de dados, tempo máximo de execução excedido, dentre outros.
Durante o desenvolvimento é altamente recomendado deixar os erros habilitados, justamente para ser feita a depuração dos mesmos, antes de finalizar o projeto. Depois de concluido, podemos desabilitar os erros, para caso haja uma eventualidade, não fique aparecendo diretamente na tela do usuário / cliente !
Para isso, vamos criar uma página PHP, onde vamos deixar os comandos para habilitar/desabilitar de forma simples e rápida, e vamos incluir a página criada nas páginas em que os erros não deverão ser exibidos. Vamos começar:
Definimos de início error_reporting para ser zero, com isso nenhum erro é reportado. Logo em seguida atribuimos ao display_errors o valor zero, poderia ser também true ou false, um e zero, respectivamente. O código acima fará com que o PHP não exiba nenhum tipo de erro na tela. Para exibir todos os erros novamente utilize o código abaixo: [ mostra_erros.php ]
<?php
Veremos a seguir, algumas outras combinações, para ser exibido somente o erro desejado. Primeiro vamos entender o que cada erro mais comum do PHP quer dizer:
( Definições completas disponíveis no manual PHP.net: )
E_ERROR: Estes indicam erros que não podem ser recuperados, como problemas de alocação de memória. A execução do script é interrompida. E_WARNING: Avisos em tempo de execução (erros não fatais). A execução do script não é interrompida. E_PARSE: Erro em tempo de compilação. Erros gerados pelo interpretador. E_NOTICE: Indica que o script encontrou alguma coisa que pode indicar um erro, mas que também possa acontecer durante a execução normal do script. E_STRICT: Permite ao PHP sugerir mudanças ao seu código as quais irão assegurar melhor interoperabilidade e compatibilidade futura do seu código. E_ALL: Todos erros e avisos, como suportado, exceto de nível E_STRICT
Caso você deseje exibir apenas os erros de tipo E_WARNING deve ser usado o seguinte código:
Observe que agora atribuimos ao display_errors o valor 1 ( true ), para reportamos apenas os erros E_WARNING, como definimos na função error_reporting.
Com isso, todos os erros serão mostrados ( E_ALL ), com exceção do E_WARNING.
Já temos nosso arquivo de configuração ( mostra_erros.php ), agora basta chamar o arquivo de configuração nas páginas em que gostaria de alterar a configuração.
<?php
include “mostra_erros.php”;
?>
Adicione a ‘include’ acima no inicio das páginas PHP, para que seja definido os parametros antes da página ser carregada. Quando precisar depurar algum erro nos códigos, ou acrescentar mais linhas ao código, basta alterar o arquivo mostra_erros.php e habilitar a exibição dos erros conforme foi apresentado nos exemplos acima.