Pular para o conteúdo principal

Postagens

Mostrando postagens de 2009

Site com classe

O melhor site para pegar scripts prontos de php, sem dúvida, é o www.phpclasses.org . Ele não só contém vários scripts prontos, mas também envia email todo dia com os novos scripts que a galera vai postando. Para baixar qualquer coisa nele tem que estar logado....mas vale a pena.

Alertando o usuário sobre problemas encontrados

Alertar o usuário sobre o que foi que aconteceu é sempre importante. Senão acontece de o cara apertar em salvar e não saber se foi salvo ou se deu m... em algum local. Acontece várias vezes de um mesmo arquivo de processamento receber dados de formulários diversos. Como fazer para devolver a resposta para a página que enviou? A resposta é o comando getenv('HTTP_REFERER'). Assim, normalmente eu faço o seguinte. A página de processamento ficará mais ou menos assim: try{     // tenta salvar     $nObjeto = new NObjeto();     $nObjeto->salvar($_POST); } catch(Exception $e){     // se não deu certo devolve para a página que pediu para     // salvar com os erros passados via GET     header('Location: '.getenv('HTTP_REFERER').'&erro='.$e->getCode().'&mensagem='.$e->getMessage()); } Se o getenv não funcionar como deveria utilize o $_SERVER['HTTP_REFERER'].

Bonito efeito para acessar portais

Fazer uma bela apresentação para o login sempre impressiona e facilita a venda de seus produtos. O chefão vai achar o bicho e seus usuários vão achar que tu é bom mesmo. Vi um dia desses um que é simples e bonito. O pessoal vai adorar e é feito em jquery, o que garante que irá funcionar em vários navegadores. Ele imita o novo padrão de login do twitter. Clique para ver o efeito

MySQL Workbench...é o bicho

Normalmente eu usava uma técnica pouco usual de se fazer o banco. Pegava um papel e começava a criar minhas tabelas e as estruturando. Depois passava tudo via phpmyadmin para o banco e pau na máquina. Em seguida usava os criadores automáticos de OO que desenvolvi e ficava boa parte do serviço pronto. Bastando dar algumas ajeitadas no layout e nos códigos. Mas como os projetos que estou tocando estão crescendo muito procurei por alguma ferramenta que pudesse fazer uma engenharia reversa do banco e me apresentar toda a estrutura que montei para que os futuros programadores pudessem entender melhor o que fiz. Estou testando o tal do MySQL Workbench . Até onde fui, percebi que é o bicho. Vale apena conferir. Não irei postar manuais, pois é só colocar no amigo Google que ele mostra alguns muito bons, mas fica a dica.

Documentação...aí que medo!

Essa semana pediram a documentação de um sistema enorme que eu criei. Que gelada. Não paro de escrever já tem uns dois dias e não cheguei nem perto da metade. É a primeira vez que me pedem isso e a tarefa está árdua. Mas o mais interessante que eu achei foi o seguinte. Tendo esta documentação em mão eu me torno dispensável. Agora sim estou começando a entender o que é que eles querem. Deve ser por isso que a galera escreve a documentação em uma linguagem que ninguém possa entender sem muito esforço. Ficam enfiando palavras estrangeiras no meio para ficar mais difícil. Tudo visando ninguém roubar sua inteligência. Mas por mim tudo bem. Não inventei a roda mesmo. Podem copiar a vontade. Já copiei de alguém mesmo. Mas minha dica é a seguinte: Se for vender um software que tenha desenvolvido e os caras quiserem a documentação, cobre o dobro, pois eles irão te dispensar futuramente.

Ninguém aceita meu software! E agora?

Rapaz, não vou mentir, se você tem algo que é bom, mas ninguém aceita, então é porque seu marketing não deve estar bom. O pessoal de marketing diz que para um produto ser vendido ele precisa atender aos 4 'pês' (product, price, place e promotion). Ou melhor: 1) bom produto 2) bom preço 3) boa disponibilização (entrega sem problema) 4) boa propaganda (diga que é o bicho) É isso aí meu amigo. Veja o que tá faltando e vai em frente que não terá para ninguém.

Conectar com banco access usando php

Conexão com Access Para estabelecer uma conexão entre a base de dados, armazenada em qualquer lugar do disco rígido e nossa página web hospedada também em qualquer parte e reconhecida por nosso servidor pessoal a partir do diretório virtual. 1. Clique para abrir o Administrador da Fonte de Dados ODBC do Windows.‌ 2. Escolha Fonte de Dados do Sistema 3. Clique em Adicionar, escolha o driver do access e clique em Concluir. 4. Na caixa Nome da Fonte de Dados, digite um nome para a fonte de dados (por exemplo, você pode digitar NomeDoMeuBanco - não precisa colocar o .mdb). Você também pode digitar uma descrição para ajudar a lembrar por que você está usando essa fonte de dados. 5. Pronto.

Função php para verificar email

Usar uma função para verificar email é muito importante ao incorporar dados em seus sites e portais. A maioria dos sistemas hoje em dia informam através de envio de email automáticos sempre que algo importante para o usuário acontece. Se esse email estiver no banco errado, os emails não serão enviados, mas seu sistema vai achar que enviou...problema na certa no futuro. A função em php abaixo é o mínimo de validação de dados que vc deve realizar antes de salvar emails: function is_email($user_email) { $chars = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i"; if (strpos($user_email, '@') !== false && strpos($user_email, '.') !== false) { if (preg_match($chars, $user_email)) { return true; } else { return false; } } else { return false; } }

Criar um background de aparecimento lento com jquery

Efeitos jquery não param de aparecer na web. Eles tornam seu site bem mais fácil de usar e bem mais bonito também. A beleza, aliás, é tão fundamental quanto a funcionalidade. A Aple que o diga. Um efeito de background interessante que achei está no link abaixo: http://colorpowered.com/blend/ Quando tiver um tempo (o que é quase impossível) acredito que vou colocar em algum lugar. Parece que ficaria legal em um logotipo.

Cores de um site

Escolher as cores para um site é o pior problema para quem não é muito da área de design, como eu. Se seu site tem alguma figura e vc deseja saber quais cores combinam com ela, basta usar o site abaixo. É uma mão na roda... http://colorsuckr.com/

Tabs com ajax e jquery

Gerar tabs é uma necessidade diária dos programadores. Principalmente quando o tempo vai passando e os usuários vão pedindo cada vez mais coisas para implementar. Para não pesar o carregamento da página inicial, carregando o conteúdo de todas as abas, nada melhor que usar tabs com carregamento em ajax. Um bom exemplo está no link abaixo: http://www.fusioncharts.com/ free/Gallery.asp?gMenuItemId=3

Gráficos em flash

Usar flash em gráficos, para mim, é a melhor aplicabilidade do flash na web. Não é a toa que o gigante Google enche deles na maioria de suas aplicações (infelizmente eles escondem o código de tal forma que o trabalho para entender é tão grande que a gente deixa de tentar 'roubar'). Dos disponíveis, um dos melhores é o do Fusion Chart. Clica no link abaixo para dar uma olhada. http://www.fusioncharts.com/ free/Gallery.asp?gMenuItemId=3

Tabelas expansíveis

No link abaixo tem um jeito interessante de apresentar uma tabela que possui dados demais. Assim fica com um visual mais limpo para o usuário. Só se deve ter cuidado para não encher demais de javascript seu código, afinal, se alguém, por segurança, desativá-lo, não conseguirá mais ver os dados. http://www.jankoatwarpspeed.com/examples/expandable-rows/ O css do cara está meio trash, mas sempre dá para melhorar fuçando os códigos...

Upload de imagem sem problema

Para quem não deseja ter problemas com importação de figuras que não são figuras, execute os procedimentos em php abaixo antes de salvar a imagem. $erro = $config = array(); // Prepara a variável do arquivo $arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE; // Tamanho máximo do arquivo (em bytes) $config["tamanho"] = 106883; // Largura máxima (pixels) $config["largura"] = 350; // Altura máxima (pixels) $config["altura"] = 180; // Formulário postado... executa as ações if ($arquivo) { // Verifica se o mime-type do arquivo é de imagem if (!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"])) { $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; } else { // Verifica tamanho do arquivo if ($arquivo["size"] > $config["tamanho"]) { $erro[] = "Arquivo em tamanho m

Melhorar o foco nos inputs e textarea

Para melhorar a visualização de onde está o cursor utilize o css abaixo. input:focus, select:focus, textarea:focus { background:red; color:white; } É claro que essa configuração é feia, mas a idéia é boa. Troque por um fundo amarelo claro para melhorar. Infelizmente nosso inimigo IE não aceita bem esta configuração css, mas todos os outros aceitam.

Executar sql extensos com phpMyAdmin

Aqui está um truque simples e conveniente que eu uso muitas vezes para fazer o Dump de scripts MySQL, contornando as restrições de limites do PHP/Apache ( file upload ). O exemplo abaixo foi realizado utilizando o WAMP , mas o procedimento é o mesmo para uma instalação Linux. 1. Vá até o diretório onde esta instalado o seu phpMyAdmin e crie uma pasta chamada “upload”. Cole qualquer (pode ser vários) scripts SQL que você gostaria de rodar nesta pasta. 2. Abra o arquivo de configuração do phpMyAdmin (config.inc.php). Você o encontrará na raiz da pasta do diretório phpMyAdmin. 3. Edite o config.inc.php na linha do diretório upload e deixe a configuração assim: $cfg['UploadDir']='./upload'; 4. Agora, quando você entrar no phpMyAdmin e escolher importar, você verá uma guia nova listando todos os arquivos que você tenha inserido no diretório “upload”, criado na etapa 1 acima. Portanto, da próxima vez que você tentar transferir um script SQL grande para um servidor remot

Função em php que gera uma data futura

Para quem precisa de uma função em php que calcula o dia seguinte aí vai: function fdt_futura($data,$tipo="d",$ quantidade=1) { /*recebe a data no formato dd/mm/aaaa d é dia m é mês a é ano Exemplos: echo "O dia seguinte de 03/11/2006 = ".data_futura("03/11/2006")."< br>"; echo "Dois dias depois de 03/11/2006 = ".data_futura("03/11/2006","d" ,2)." "; echo "Tres meses depois de 03/11/2006 = ".data_futura("03/11/2006","m" ,3)." "; echo "Quatro anos depois de 03/11/2006 = ".data_futura("03/11/2006","a" ,4)." "; echo "Amanha = ".data_futura(date("d/m/Y"))." "; echo "Ontem = ".data_futura(date("d/m/Y")," d",-1)." ";*/ $temp = explode("/", $data); // se for dia if ($tipo == "d") { $dia = $temp[0]+$quantidade; } e

Função que deixa apenas os algarismos alpha númericos em php

A função em php abaixo retira os caracteres que não são alphanumericos de uma string. Por exemplo: echo paranoid("a45&áçudi"); // irá gerar audi function paranoid($string, $allowed = array()) { $allow = null; if (!empty($allowed)) { foreach ($allowed as $value) { $allow .= "\\$value"; } } if (is_array($string)) { $cleaned = array(); foreach ($string as $key => $clean) { $cleaned[$key] = preg_replace("/[^{$allow}a-zA- Z0-9]/", '', $clean); } } else { $cleaned = preg_replace("/[^{$allow}a-zA- Z0-9]/", '', $string); } return $cleaned; }

Função que calcula a quantidade de dias em um mês em php

Abaixo vai uma função legal que calcula a quantidade de dias em um mês, usando código php: function get_total_days($month, $year) { $days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); if ($month <> 12) { return 0; } // Is the year a leap year? if ($month == 2) { if ($year % 400 == 0 OR ($year % 4 == 0 AND $year % 100 != 0)) { return 29; } } return $days_in_month[$month - 1]; }

Contagem do tempo de processamento de código php

Para quem precisa saber se seu código está rodando rápido, aí vai uma classe legal que faz isso: class funcao_tempo_processamento { var $marcacoes = array(); function marca($name) { $this->marcacoes[$name] = microtime(); echo $this->marcacoes[$name]; } // ------------------------------ ------------------------------ -------- /** * Calcula o tempo entre duas marcações */ function tempo_decorrido($point1 = '', $point2 = '', $decimals = 4) { if ($point1 == '') { return '{tempo_decorrido}'; } if ( ! isset($this->marcacoes[$ point1])) { return ''; } if ( ! isset($this->marcacoes[$ point2])) { $this->marcacoes[$point2] = microtime(); } list($sm, $ss) = explode(' ', $this->marcacoes[$point1]); list($em, $es)

Criptografia em php

Para quem estiver precisando de um código de criptografia bom, que utiliza objeto, e que gente grande utiliza, veja abaixo o que eu achei no CodeIgner: class CI_Encrypt { var $CI; var $encryption_key = ''; var $_hash_type = 'sha1'; var $_mcrypt_exists = FALSE; var $_mcrypt_cipher; var $_mcrypt_mode; /** * Constructor * * Simply determines whether the mcrypt library exists. * */ function CI_Encrypt() { $this->CI =& get_instance(); $this->_mcrypt_exists = ( ! function_exists('mcrypt_ encrypt')) ? FALSE : TRUE; log_message('debug', "Encrypt Class Initialized"); } // ------------------------------ ------------------------------ -------- /** * Fetch the encryption key * * Returns it as MD5 in order to have an exact-length 128 bit key. * Mcrypt is sensitive to keys that are not the correct length * * @access