Pular para o conteúdo principal

Postagens

Simulação de como seria se a ação policial tivesse evitado o massacre de Realengo...

“Dia 07 de abril de 2011 às 08h, policiais ao passar em frente a Escola Tasso de Oliveira no bairro Realengo, Rio de Janeiro/RJ, foram informados por um funcionário sobre a entrada de um elemento suspeito e armado. Os policiais imediatamente entraram na escola. Segundo informações do policial (sargento da PM Márcio Alves) o suspeito foi abordado quando este estava prestes a entrar em uma das salas de aula. Ao ouvir o chamado do policial, o elemento sacou uma arma da cintura. Imediatamente o policial atirou na direção do mesmo ferindo-o mortalmente. O barulho do disparo provocou pânico nas salas de aulas e no corre-corre alguns alunos sofreram contusões leves devido a choques com as carteiras escolares e em outros alunos. A direção da escola e professores protestaram contra ação precipitada do policial que disparou a arma num ambiente escolar levando risco as crianças. Ouvida pela imprensa, uma professora declarou não ter ouvido a ordem do policial ao rapaz antes do disparo e que o rapa...

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.

Validar nome de arquivo

Não é bom salvar arquivos uplodeados com o mesmo nome recebido, pois pode ter diversos caracteres inválidos, ser muito grande ou que não podem ser usados em um link. A função abaixo resolve o problema dos caracteres inválidos de arquivos: function isValidFileName($file) { /* don't allow .. and allow any "word" character \ / */ return preg_match('/^(((?:\.)(?!\.))|\w)+$/', $file); }

Alterando a senha do root do mysql...

Execute as SQL abaixo no banco: use mysql; update user set password=PASSWORD("nova_senha") where User='root'; flush privileges; Agora é só reiniciar o mysql que vai funfar.

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

Indução de tipo em métodos

Este recurso permite que você especifique o tipo dos argumentos que serão passados para um método. Você pode querer que seu método só receba parâmetros do tipo array ou uma instância de um objeto, por exemplo. public function metodoBase(SubClasse $subObjeto) {     echo 'Variável precisa ser uma instância de SubClasse'; } Para especificar que o parâmetro passado seja um array, utilize; public function metodoBase(array $vetor){     echo 'A variável precisa ser um vetor'; }