Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo php

Propriedades estáticas em PHP ou Java

As propriedades estáticas são instanciadas apenas uma vez e depois todos os objetos criados em seguida fazem referência a esta mesma variável: Exemplo: class Teste{     public static $qt = 0;     function __construct() {         Teste::$qt++;         echo Teste::$qt;     } } $a = new Teste(); // imprime 1 $b = new Teste(); // imprime 2

Como atualizar a versão do phpmyadmin no WAMP?

Para atualizar a versão do phpmyadmin no WAMP faça o seguinte. 1) Salve a nova versão do phpmyadmin na pasta de aplicativos do WAMP: Exemplo: c:/wamp/apps/phpmyadmin3.4.3.2/ 2) Acesse o arquivo alias do phpmyadmin e altere o caminho nos dois locais onde aparece o endereço da pasta Exemplo: arquivo que deve alterar: c:/wamp/alias/phpmyadmin.conf linhas para alterar: Alias /phpmyadmin "c:/wamp/apps/phpmyadmin3.4.3.2/" 3) Abra o arquivo de configuração do WAMP e coloque o número da nova versão do phpmyadmin Exemplo: arquivo que deve alterar: c:/wamp/wampmanager.conf Linha que deve alterar: phpmyadminVersion = 3.4.3.2 4) Agora é só reiniciar o WAMP

Visualizar erro de código

Por padrão, a maioria dos servidores web de produção desativam a visualização de erros: Para conseguir visualizar o que está acontecendo de errado basta colocar os comandos abaixo em sua página PHP. @ini_set('display_errors', '1'); error_reporting(E_ALL);

Evitando contador duplicado...

Caso você tenha um contador inteiro em uma tabela, para que este tenha uma leitura consistente, evitando chaves duplicadas, use os comandos SQL abaixo: SELECT contador FROM tbl_contador FOR UPDATE; UPDATE tbl_contador SET contador = contador + 1;

Evitando o SQL injection e ataque XSS

Devemos sempre procurar evitar ataques ao nosso sistema. Com relação as strings recebidas pelos usuários tratar com mysql_real_escape_string e ao imprimir utilizar o htmlentities . Assim você evita dois tipos de ataque. No primeiro evita o SQL injection e no segundo o ataque XSS.

Classe que gera um backup do banco escolhido sem problemas com foreign key

Fiz a classe abaixo para ajudar na geração e restauração de backup. Ela ordena as tabelas de tal forma a evitar erros de foreign key ao fazer a restauração. Código: /** * Classe criada no dia 14/02/2011 para gerar um backup do banco * sem o inconveniente de problemas com chave estrangeira ao fazer o restore * Exemplo: * //seta o banco que se deseja fazer o backup * $backup->setBd($_POST['db']); *        * // seta quais tabelas se deseja fazer o backup * $backup->setListaTblEscolhida($_POST["tabelas"]); *        * // cria um nome para o backup * $no_backup = "./".$_POST['db']."_bkp_".date("YmdHi").".sql"; *     * // manda a classe fazer o backup * $backup->fazerBackup($no_backup); */ class f_Backup{     private $lista_bd; // lista de bancos de dados     private $lista_tbl; // lista das tabelas do banco de dados escolhido     private $lista_tbl_escolh...

Função para gerar máscaras

Retirado do site http://clares.wordpress.com/ // funcao que gera os numeros com mascara function mask($val, $mask){     $maskared = '';     $k = 0;     for($i = 0; $i<=strlen($mask)-1; $i++){         if($mask[$i] == '#'){             if(isset($val[$k])){                 $maskared .= $val[$k++];             }         } else{             if(isset($mask[$i])){                 $maskared .= $mask[$i];             }         }     }     return $maskared; } // exemplo $cnpj = "11222333000199"; ...

WAMP não carrega o postgre...corrigido!

Uso o WAMP (acrônimo de W indows, A pache, M ySQL e P HP) para instalar tudo o que preciso para fazer sites, mas um problema que acontecia direto comigo era não conseguir fazer subir os serviços do postgre. Uma solução antiga era instalar o php 5.2.5 que as bibliotecas voltavam a funcionar. Hoje descobri uma outra solução. Basta colocar no httpd.conf do apache a seguinte linha: LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll" Se a versão do Postgre é outra, basta corrigir o caminho acima. Caso a versão do PHP seja a 5.4 deve-se colocar o caminho da libpq.dll que está na pasta do PHP. Seria algo do tipo: LoadFile "C:/wamp/bin/php/php5.4.3/libpq.dll"

Redimensionar imagem no php

Achei uma classe legal para redimensionar imagem. Para usá-la faça assim: // redimensiona a imagem se ela for maior que o tamanho limite $resizeObj = new resize(); $resizeObj->setImage('./img_old_5.png'); if($resizeObj->getWidth()>300 || $resizeObj->getHeight()>400){     $resizeObj->resizeImage(300, 400);     $resizeObj->saveImage('./redimensionado.jpg', 80); } A classe está abaixo: # ========================================================================# # #  Author:    Rajani .B #  Version:     1.0 #  Date:      07-July-2010 #  Purpose:   Resizes and saves image #  Requires : Requires PHP5, GD library. #  Usage Example: #                     include("classes/resize_class.php"); #         ...

Trocar símbolos por smiles

Criei uma função que utiliza a função str_replace para trocar os símbolos por smiles nos bate-papos. Usei como base os ícones e símbolos do skype. Para baixar acesse: http://www.megaupload.com/?d=8ZWE4FEG

Tempo de processamento

Função baseada no CodeIgniter que calcula o tempo de processamento...muito bom para ver se os códigos estão funcionando legal ou se estão muito lentos... class TempoProcessamento { var $marcas = array(); function marca($name){ $this->marcas[$name] = microtime(); } function tempo_decorrido($ponto1 = '', $ponto2 = '', $decimals = 4) { if ($ponto1 == ''){ return '{tempo_vazio}'; } if ( ! isset($this->marcas[$ponto1])){ return ''; } if ( ! isset($this->marcas[$ponto2])){ $this->marcas[$ponto2] = microtime(); } list($sm, $ss) = explode(' ', $this->marcas[$ponto1]); list($em, $es) = explode(' ', $this->marcas[$ponto2]); return number_format(($em + $es) - ($sm + $ss), $decimals); } } $tempo = new TempoProcessamento; $tempo->marca("inicio"); $tempo->marca("final"); echo $tempo->tempo_decorrido("inicio","final")." ";

Função que deixa apenas os números e as letras sem acentos, mas permite exceções

A função abaixo funciona assim: $permitido[]='à'; echo paranoid("asdfqwerf654à_asdf-çàéô",$permitido); //asdfqwerf654àasdfà 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; }

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...