nota para minha classe
olá pessoal,
estou há muito tempo estudando e muito PHP.
estou gostando muito de programar PHP OO, e estou desenvolvendo uma class, e gostaria que vcs dessem uma nota e dicas, sugestões.
muito obrigado
principal.class.php
<?php
class principal extends mysql{
//Algumas configurações
protected static $errorLocation = 'erro.php';
private static $error_file = 'log_error.txt';
private static $diretos = array('index.php');
private static $indiretos = array('principal.class.php');
//Função a ser executada ao iniciar a classe
public function __construct(){
if(self::perms($_SERVER['SCRIPT_NAME'],'1')){
parent::conectar();
}else{
self::errorLog('2','Esse arquivo não pode ser acessado por este modo',$_SERVER['SCRIPT_NAME'],'22','');
}
}
//Função a ser execultada quando terminar a execução
public function __destruct(){
parent::close_conn();
}
//Função que trata os erros
public static function errorLog($errorCod,$errorMsg,$errorFile,$errorLine,$errorContext){
$error_arq = fopen(self::$error_file,'a');
$errorData = date('d/m/Y') . ' às ' . date('H:i:s');
$errorIp = $_SERVER['REMOTE_ADDR'];
if(empty($errorContext)){
$context = '';
}else{
$context = "($errorContext)";
}
$erro = "Erro[$errorCod]: $errorMsg (Caminho: $errorFile) (Linha: $errorLine) $context (Data: $errorData) (IP: $errorIp) \r\n\r\n";
fwrite($error_arq,$erro);
fclose($error_arq);
header('Location: ' . self::$errorLocation);
}
//Função que verifica se o arquivo tem as permissões corretas
function perms($arqNome,$tipoAcesso){
$arqNome = explode('/',$arqNome);
if($tipoAcesso == '1'){
if(in_array($arqNome[1],self::$diretos) AND !in_array($arqNome[1],self::$indiretos) AND file_exists($arqNome[1])){
return true;
}else{
return false;
}
}elseif($tipoAcesso == '2'){
if(in_array($arqNome[1],self::$indiretos) AND !in_array($arqNome[1],self::$diretos) AND file_exists($arqNome[1])){
return true;
}else{
return false;
}
}
}
}
class mysql{
//Configurações da conexão MYSQL
private $host = '127.0.0.1';
private $user = 'root';
private $senha = '';
private $db = 'teste';
//Definições de variáveis
private $conn;
public $sql;
//Função a ser executada ao iniciar a classe
public function __construct(){
new principal;
}
//Função a ser execultada quando terminar a execução
public function __destruct(){
$this->close_conn();
}
protected function conectar(){
$this->conn = mysql_connect($this->host,$this->user,$this->senha) or die(parent::errorLog('2',mysql_error(),'C:\Program Files (x86)\EasyPHP-5.3.8.1\www\teste.class.php','98',''));
mysql_select_db($this->db,$this->conn) or die(parent::errorLog('2',mysql_error(),'C:\Program Files (x86)\EasyPHP-5.3.8.1\www\teste.class.php','99',''));
}
//Função para fechar a conexão MYSQL
protected function close_conn(){
if($this->conn != NULL){
unset($this->sql);
mysql_close($this->conn);
}
}
//Função anti-injection SQL
public function anti_injection($sintese){
$sintese = preg_replace("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/i",'',$sintese);
$sintese = strip_tags($sintese);
$sintese = trim($sintese);
if(!get_magic_quotes_gpc()){
$sintese = mysql_real_escape_string($sintese,$this->conn);
}
return $sintese;
}
//Função que executa uma query no MYSQL
public function query($s){
return $this->sql = mysql_query($s,$this->conn);
}
}
//Seta o nome da função para tratar errors
set_error_handler("principal::errorLog");
?>Discussão (53)
Carregando comentários...