Vitor Pinho ☮ 1,199 Posted October 15, 2013 Funções - Anti Injection - Sistema de Log - Ban por IP automatizado - Conexão e manipulação de banco de dados <?php /* #########################################################Classe MYSQL, Logs, Ban########################################################################## * Inicie a função com: $sql = new mysql(); * Obter dados POST com: $post = anti_injection($_POST[campo]); * Obter dados GET com: $get = anti_injection($_GET[campo]); * Para gerar arquivo de log inclua: $sql->get_nav(""); * Para iniciar o sistema de ban via ip inclua: $sql->ban_ip(); * Para conectar ao banco de dados inclua: $sql->conectar("host","login","senha"); * Para selecionar o banco de dados inclua: $sql->selectdb("dbname"); * Para selecionar tabelas inclua: $sql->selecionar("campos,separados,por,virtuga","tabela","campo_where=valor","campo_orderby","desc ou asc"); caso sem ordeby deixar em "" idem para asc ou desk. * Para exibir resultado unico: print $sql->exibe(campo); * Para exibir varios resultado: print $sql->exibeall(campo); * Para update: $sql->atualizar("tabela","campo","valor_atualizar","campo_where","valor"); * Para insert: $dados = array ('campo' => 'valorcampo'); $sql->inserir("tabela","dados"); * Para delete: $sql->deletar("tabela","where_campo=where_valor"); * Para desconectar mysql: $sql->desconectar(); */ $sql_ip = "mysql.hostinger.com.br"; $sql_user = "u992474423_site"; $sql_pass = "vop483kaj6a"; $sql_db = "u992474423_site"; function anti_injection($sql) { $sql = preg_replace("/(from|select|insert|delete|where|drop table|show tables|and|sleep|#|'|*|--|)/i", '', $sql); $sql = trim($sql); $sql = strip_tags($sql); $sql = addslashes($sql); $sql = htmlspecialchars($sql); $sql = preg_replace('/[^a-zA-Z0-9]/', "", $sql); //$sql = substr($sql, 0, 2); return $sql; } class Mysql { var $conect; var $database; var $query; public function gravando_erros($erro){ $arquivo = fopen('log/54545646757878794.txt','a'); fwrite($arquivo,"[".date("r")."] Log: $errorn"); fclose($arquivo); } public function erro($msgerro){ $exibemsg = "Ocorreu um problema durante a manipulação dos dados! "; $exibemsg .= "O erro encontrado foi: "; $exibemsg .= "$msgerro"; $this->gravando_erros($exibemsg); echo $exibemsg; } public function get_nav($complement){ $useragent = $_SERVER['HTTP_USER_AGENT']; if (preg_match('|MSIE ([0-9].[0-9]{1,2})|',$useragent,$matched)) { $browser_version=$matched[1]; $browser = 'IE'; } elseif (preg_match( '|Opera/([0-9].[0-9]{1,2})|',$useragent,$matched)) { $browser_version=$matched[1]; $browser = 'Opera'; } elseif(preg_match('|Firefox/([0-9.]+)|',$useragent,$matched)) { $browser_version=$matched[1]; $browser = 'Firefox'; } elseif(preg_match('|Chrome/([0-9.]+)|',$useragent,$matched)) { $browser_version=$matched[1]; $browser = 'Chrome'; } elseif(preg_match('|Safari/([0-9.]+)|',$useragent,$matched)) { $browser_version=$matched[1]; $browser = 'Safari'; } else { $browser_version = 0; $browser= 'other'; } $ip = $_SERVER["REMOTE_ADDR"]; $endereco = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $concl = "$complement: | IP: $ip | Navegador: $browser $browser_version | $endereco"; $this->gravando_erros($concl); } function ban_ip(){ $url = $_SERVER['REQUEST_URI']; $ipban = $_SERVER["REMOTE_ADDR"]; ///////////////////////////////////////////////////////////////DEFINE DATA e BANE IP if (strlen($url) > 30) { if ($ipban != "127.0.0.1"){ $htacess = fopen('.htaccess','a'); $data_release = strftime("%d/%m/%y", strtotime("+1 days")); fwrite($htacess,"deny from $ipbanrn#Release $data_release $ipbanrn"); fclose($htacess); $log = fopen('log/54545646757878794.txt','a'); fwrite($log,"[".date("r")."] IP BANNED: IP: $ipban | Release Day ".$data_release."rn"); fclose($log);} } } function conectar($host,$usuario,$senha){ $this->conect = mysql_connect($host, $usuario, $senha); if($this->conect) { return true; } else { $this->erro(mysql_error()); } } function selectdb($db){ $this->database = mysql_select_db($db, $this->conect); if(mysql_select_db($db, $this->conect)) { return true; } else { $this->erro(mysql_error()); } } function inserir($tabela,$dados){ // Dividimos o Array dentro de $dados em Chaves e Valores $campos = array_keys($dados); $valores = array_values($dados); //Executamos a Query $this->query = mysql_query("INSERT INTO ".$tabela." (".implode(', ', $campos).") VALUES ('" . implode('', '', $valores) . "')"); //Verificamos se a Query foi executada corretamente if($this->query) { return $ok = true; } else { $this->erro(mysql_error()); } } function deletar($tabela,$where){ $this->query = mysql_query("DELETE FROM ".$tabela." WHERE ".$where.""); if($this->query) { $this->gravando_erros("DELETE FROM ".$tabela." WHERE ".$where." " .$_SERVER['REMOTE_ADDR']); return true; } else { $this->erro(mysql_error()); } } function atualizar($tabela,$campo,$valores,$where){ $this->query = mysql_query("UPDATE $tabela SET $campo='$valores' WHERE ".$where.""); if($this->query) { $this->gravando_erros("UPDATE $tabela SET $campo='$valores' WHERE ".$where." | " .$_SERVER['REMOTE_ADDR']); return true; } else { $this->erro(mysql_error()); } } function selecionar($campos,$tabela,$where,$orderby,$alinhamento) { if(!empty($campos) && !empty($tabela) && empty($where) && empty($orderby) && empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela.""); return true; } elseif(!empty($campos) && !empty($tabela) && !empty($where) && empty($orderby) && empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where.""); return true; } elseif(!empty($campos) && !empty($tabela) && !empty($where) && empty($orderby) && empty($alinhamento) && !empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." LIMIT ".$limit.""); return true; } elseif(!empty($campos) && !empty($tabela) && !empty($where) && empty($orderby) && !empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." ".$alinhamento.""); return true; } elseif(!empty($campos) && !empty($tabela) && !empty($where) && !empty($orderby) && empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ".$where." ORDER BY ".$orderby.""); return true; } elseif(!empty($campos) && !empty($tabela) && !empty($where) && !empty($orderby) && !empty($alinhamento) && empty($limit)) { $this->query = mysql_query("SELECT ".$campos." FROM ".$tabela." WHERE ... Fonte Share this post Link to post Share on other sites