Jul
14

PHP: Calculando o intervalo entre duas datas

Autor: Couto
Categoria: PHP | Nenhum Comentário


Para encontrarmos o tempo percorrido entre duas datas, devemos converter cada data em uma imagem de hora, calcular a diferença e, depois, converter a diferença em uma saída legível para nós.

Para isso usaremos a função mktime(), que retorna um timestamp, ou seja, o numero de segundos desde que a época UNIX começou(1 de janeiro de 1970).

Para resolver este problema vamos criar uma função que recebe duas datas e retorna a quantidade tempo percorrido entre elas:

Exibir post completo

Jun
06

Javascript: Lista, Drag and Drop e Ajax para Ordernar

Autor: Jonathan Isaac
Categoria: Ajax, CSS, JavaScript, PHP, Prototype, Script.aculo.us | 5 Comentários


Este artigo veio através da necessidade de um de nossos clientes, que pediu o seguinte:

“Na listagem de produtos eu quero poder organizar a forma eles irão aparecer. Detalhe: Já cadastrei tudo.”

A partir desta exigência foi pensado o seguinte:

“Primeiro preciso fazer com que as linhas se movimentem dentro do bloco principal (drag and drop), depois eu atualizo o banco de dados (Ajax)”

O sistema estava desenvolvido em tabelas (tables) para a listagem de produtos (erro comum) por isso esse artigo foi escrito visando tabelas e não lista (ul,li), porém o artigo serve em igual para ambas formas de listagem (aconselha-se lista).


Exibir post completo

Jun
06

PHP: Gerando imagem de segurança

Autor: Couto
Categoria: CSS, GD, PHP | Nenhum Comentário


A imagem de segurança é um recurso muito útil para evitar que robôs executem tarefas repetitivas eu seus formulários de cadastro, sistemas de votação ou coisas do tipo.

Vale ressaltar que este exemplo que criei tem fins didáticos e para ser usado profissionalmente devera ser melhorado. A idéia aqui é simplesmente explicar como funciona o mecanismo.

Para que este recurso funcione corretamente, você precisa ter a biblioteca GD instalada no servidor. Você encontrará mais informações sobre esta biblioteca em http://www.php.net/manual/pt_BR/ref.image.php

Exibir post completo

Jun
05

JavaScript: Server-side

Autor: Couto
Categoria: JavaScript | 1 Comentário


O poder do JavaScript com linguagem Client-side não é novidade para ninguém. O que poucos sabem, é que com o JavaScript Server-side podemos nos conectar a bancos de dados relacionais, compartilhar informações entre usuários de um aplicativo, acessar o sistema de arquivos do servidor ou comunicar-se com outras aplicações através do LiveConnect e Java. Paginas HTML com JavaScript Server-side também podem incluir JavaScript Client-side.

Ao contrario de paginas com puro JavaScript Client-side, as paginas HTML com JavaScript Server-side são compiladas em bytecode de arquivos executáveis. Estes executáveis são rodados pelo servidor web que contém o JavaScript Runtime Engine. Por esse motivo a criação dessas aplicações se dá em um processo de duas fases:

Exibir post completo

Jun
04

CSS: Barra de Rolagem Vertical no Firefox

Autor: Jonathan Isaac
Categoria: CSS | Nenhum Comentário


Uma dica clássica para um problema clássico, na verdade eu estou postando aqui porque eu sempre esqueço da instrução completa.

O problema é o seguinte, no Internet Explorer 5-6-7-8, a barra de rolagem sempre aparece independente de ter conteúdo vertical suficiente ou não, já no Firefox a barra é omitida quando o conteúdo do documento for menor que a resolução do navegador.

Exibir post completo

Jun
04

MySQL: Segurança

Autor: Jonathan Isaac
Categoria: Linux, MySQL | Nenhum Comentário


A pouco tempo li um artigo muito interessante na Security Focus, para quem não conhece, a Security Focus é a referência hoje no quesito segurança.

O artigo lida sobre a segurança no MySQL em um passo a passo bem instrutivo que não deixa a desejar seja você um expert e/ou iniciante na área de Linux/MySQL.

Exibir post completo

Jun
03

PHP Orientado a Objetos: Singleton e MySQL

Autor: Jonathan Isaac
Categoria: Design Patterns, MySQL, PHP | Nenhum Comentário


Graças aos famosos Design Patterns, ou padrões de projeto (desenvolvimento), coisas interessantes surgem no PHP, como a implementação do Singleton para conexões à banco de dados, o que chegam a reduzir bruscamente o tempo de processamento das páginas.

Nosso exemplo prático irá abordar uma conexão ao MySQL com a seguinte idéia (idéia básica):

“A reutilização, em diversos pontos, de uma conexão ao banco de dados”


Exibir post completo

Jun
03

Ajax: Implementando uma fila de requisições

Autor: Couto
Categoria: Ajax | Nenhum Comentário


Sempre que precisamos fazer varias requisições utilizando o mesmo objeto XMLHTTPRequest, é interessante utilizarmos uma fila, pois pode acontecer de algumas dessas requisições se perderem pelo caminho, já que estas são feitas de forma assíncrona.

Para criar este mecanismo precisamos de um vetor para armazenar as requisições, uma função para enfileirar e outra para executar.

Bom, se você esta aqui procurando uma forma de executar múltiplas requisições, eu suponho que suas funções já estejam devidamente implementadas e funcionando perfeitamente quando executadas individualmente. Estas funções devem ser mantidas para estas ocasiões, porem, quando utilizarmos a fila, precisamos somente da url e dos parâmetros para fazermos a requisição.

Exibir post completo

Jun
03

PHP: Validando e-mail com expressão regular

Autor: Couto
Categoria: Expressões Regulares, PHP | 2 Comentários


Para fazer a validação simples em um endereço de e-mail utiliza a seguinte expressão regular(Os escapes duplos são para aspas duplas, use escapes únicos para aspas simples):

^([a-z0-9_]|\\-|\\.)+@(([az0-9_]|\\-)+\\.)+[a-z]{2,4}$

Para chamar esse código você deve usar o eregi(). O ereg() não funcionará porque a pesquisa precisa ser sem distinção entre maiúsculas e minúsculas. Então, utilize a função da seguinte maneira:

if(!eregi(“^([a-z0-9_]|\\-|\\.)+@(([az0-9_]|\\-)+\\.)+[a-z]{2,4}$”,$email)){
     die(“E-mail invalido.);
}


Exibir post completo

Jun
03

MySQL: Usando Expressões Regulares

Autor: Jonathan Isaac
Categoria: Expressões Regulares, MySQL | 1 Comentário


Antes de mais nada, quem é esse tal de REGEX ?

Não passa de uma abreviação (do ingês) de Expressões Regulares, e …

E de forma breve, “Uma expressão regular, na Informática, define um padrão a ser usado para procurar ou substituir palavras ou grupos de palavras. É um meio preciso de se fazer buscas de determinadas porções de texto”.



Exibir post completo