SiLLeNt 0 Denunciar post Postado Outubro 25, 2005 Aew povo to me arriscando aqui com oop mais to me ferrando nessa classe... :/// Fui seguindo o exemplo do fabyo e seguindo outros exemplo coloquei tudo no liquitificador e deu nisso.... so que ta sempre dando esse erro... mais nao to encontrando nada de errado na linha que o erro é disparado o erro é este: Fatal error: Using $this when not in object context in C:\Arquivos de programas\Apache Group\Apache2\htdocs\loja\forum.php on line 37 E o código é este <?phpclass Conexao extends Erro_Sql { var $servidor = "localhost"; var $user = "root"; var $pass = ""; var $banco = "wloja"; var $mysqli; public function Abrir() { $this->mysqli = new mysqli($this->servidor, $this->user, $this->pass, $this->banco); // Check Connect if (@mysqli_connect_errno()) { $this->Gravar_Conn(); return false; } } public function Fechar() { $this->mysqli->close(); } } // Classe de execução de comandos em MySQLI ...class Comando extends Erro_Sql { public function Checa_Query() { if (@mysqli_errno()) { $this->Gravar_Query(); exit(); } } public function Executar($sql) { $con = new Conexao(); $con->Abrir(); $query = $con->mysqli->query($sql); $this->Checa_Query(); // Essa é a linha do erro $con->Fechar(); return $query; } } // Classe para log de erros na execução de querys em SQLclass Erro_Sql { var $log_erro = true; var $log_handle = "log_sql_error.php"; var $log_data_hora = ""; var $log_ip = ""; public function Abrir_Log() { $handle = @fopen($this->log_handle, 'ab'); } public function Fechar_Log() { @fclose($handle); } public function Gravar_Conn() { if ($this->log_erro) { $this->log_data_hora = date("F j, Y, H:i:s"); $this->log_ip = $_SERVER['REMOTE_ADDR']; $this->Abrir_log(); @fwrite($handle, "$this->log_data_hora - $this->log_ip - @mysqli_connect_error()\r\n"); $this->Fechar_Log(); } } public function Gravar_Query() { if ($this->log_erro) { $this->log_data_hora = date("F j, Y, H:i:s"); $this->log_ip = $_SERVER['REMOTE_ADDR']; $this->Abrir_log(); @fwrite($handle, "$this->log_data_hora - $this->log_ip - @mysqli_error()\r\n"); $this->Fechar_Log(); } } } ?>agradeço desde já ae qualquer ajuda \o/ so pra consta... to usando isso pra testa a classe <?phpinclude("sqli.php");$exec_sql = Comando::Executar("SELECT * FROM erros");while ($fetch = mysqli_fetch_array($exec_sql)) { echo $fetch['descricao_erro']; echo "<br />";} ?> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 25, 2005 http://br2.php.net/manual/pt_BR/function.m...fetch-array.php Compartilhar este post Link para o post Compartilhar em outros sites
SiLLeNt 0 Denunciar post Postado Outubro 25, 2005 Opa pessoalo luis-restart me ajudo aqui nao entendi muito bem o erromais ele mando eu troca o $exec_sql = Comando::Executar("SELECT * FROM erros");Por isso aqui:$con = new Comando;$query = $con->Executar("SELECT * FROM erros");e deu certo \o//////valeu ae luisFabyoele ta fazendo certinho aqui a divisao em arrays ta tudo okagora vo continua debugando o script aquipra ve se ta tudo ok nas outras classes\ovaleu ae Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Outubro 25, 2005 Pq vcs não gostam de diagramas? *rs* Compartilhar este post Link para o post Compartilhar em outros sites
SiLLeNt 0 Denunciar post Postado Outubro 25, 2005 eu num consigo mexeeee nessa coisamais aos pocos eu to me virandopeguei umas coisas sobre UML mais mesmo assim to me ferrando...mais quem sabe um dia... Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Outubro 25, 2005 Ficam duas dicas.... ;) Aplicando UML com PHP na prática (em inglês): http://www.phppatterns.com/docs/design/php..._class_diagrams Aulas de OO e UML (em português): http://www.ucb.br/ucbtic/mgcti/paginapesso...isciplinas/UML/ Compartilhar este post Link para o post Compartilhar em outros sites
SiLLeNt 0 Denunciar post Postado Outubro 25, 2005 Valeu ae Proggostei do segundo link alio outro eu ja conheciavo da uma estudada essa semana...uma outra pergunta...é melhor eu ficar bom em oopantes de começar a programar em UML ? Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Outubro 25, 2005 A UML é uma ferramenta que vai te auxiliar a desenvolver seus projetos... é uma composição de vários diagramas, os quais você vai decidir quais pode usar em determinados projetos e, atravez da modelagem desses diagramas, você vai desenvolver seus projetos Orientados a Objetos. Um exemplo prático seria o diagrama de classes, nele você modela como uma classe vai "conversar" com a outra, a visibilidade das suas propriedades e métodos, e assim por diante, digamos que seria um "desenho macro" do seu programa. É o tipo da ferramenta que somente com a prática você vai pegando o jeito. Compartilhar este post Link para o post Compartilhar em outros sites
fsphp 0 Denunciar post Postado Outubro 25, 2005 Esse link do Prog é bem interessante, eu li todo o Curso ali passado, mas cheguei a seguinte conclusão: é melhor programar oop, na prática.Essas classes que você fez ficaram muito legais e você está começando a entender. A UML é Show, mas para projetos grandes e trabalhos em equipes. Acho ideal é a prática pois o curso é muito teórico, apesar de importante.Essa é a minha opinião. Siga programando em oop e, como hobbie, nas horas livres, vá lendo esse material. B) Compartilhar este post Link para o post Compartilhar em outros sites
SiLLeNt 0 Denunciar post Postado Outubro 25, 2005 eu to usando aqui o poseidonfiz algumas coisasmais mesmo assim vivo me perdendo...me perco nas partes de private, public... etc...o pproblema é que o poseidon é muito pesadoooo:////tem algum outro ae que você conheça ? Esse link do Prog é bem interessante, eu li todo o Curso ali passado, mas cheguei a seguinte conclusão: é melhor programar oop, na prática.Essas classes que você fez ficaram muito legais e você está começando a entender. A UML é Show, mas para projetos grandes e trabalhos em equipes. Acho ideal é a prática pois o curso é muito teórico, apesar de importante.Essa é a minha opinião. Siga programando em oop e, como hobbie, nas horas livres, vá lendo esse material. B)uia fico bom mesmo ???achei que tinha ficado ummas gambiarra tudo junto ahuiahuauiaiumais valeu ae pelo incentivo \o///// Compartilhar este post Link para o post Compartilhar em outros sites
fsphp 0 Denunciar post Postado Outubro 25, 2005 Olha só Sillent, eu não testei o seu código, mas o que você fez já é um grande passo para dominar oop. ;) Compartilhar este post Link para o post Compartilhar em outros sites
SiLLeNt 0 Denunciar post Postado Outubro 26, 2005 To com um problema aquii na classe Olhem ae: <?php/** * Classe de tratamento de erros em SQL * Escrita em um arquivo PHP * aonde ficam registrados: DATA / HORA / IP / E Erro SQL; * * @version 1.0 * @copyright 2005 */class Erro_Sql { var $log_erro = true; //indicação de log ON ou OFF var $log_handle = "log_sql_error.php"; // Arquivo que será gravado os logs de erro var $handle = ""; var $desc_error = ""; public function Abrir_Log() { $handle = fopen($this->log_handle, 'ab'); } public function Fechar_Log() { fclose($handle); } public function Gravar_Conn() // Grava erros de conexao... { if ($this->log_erro) { // Verefica se é pra gravar o erro ou nao... $this->Abrir_log(); $this->desc_error = date("F j, Y, H:i:s") "-" $_SERVER['REMOTE_ADDR'] "-" mysqli_connect_error() "\r\n"; fwrite($this->handle, $this->desc_error); $this->Fechar_Log(); } } public function Gravar_Query() // Grava erros de execução de códigos... { if ($this->log_erro) { // Verefica se é pra gravar o erro ou nao... $this->Abrir_log(); $this->desc_error = date("F j, Y, H:i:s") "-" $_SERVER['REMOTE_ADDR'] "-" mysqli_error() "\r\n"; fwrite($this->handle, $this->desc_error); $this->Fechar_Log(); } } } ?>Ta apresentando esse erro: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Arquivos de programas\Apache Group\Apache2\htdocs\loja\class_erro_sql.php on line 30 Acho que é algum erro besta... pq nao to conseguindo seta a variavel... e como seis sabe eu to começando nesse oop deem uma luiz pra eu ae dinovo \o/// Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Outubro 26, 2005 Faltou concatenar. http://www.php.net/tokens $this->desc_error = date("F j, Y, H:i:s") ."-". $_SERVER['REMOTE_ADDR'] ."-". mysqli_connect_error() ."\r\n"; :P Compartilhar este post Link para o post Compartilhar em outros sites
SiLLeNt 0 Denunciar post Postado Outubro 26, 2005 vish agora nao ta conseguindo escreve o arquivo... Warning: fwrite(): supplied argument is not a valid stream resource in C:\Arquivos de programas\Apache Group\Apache2\htdocs\loja\class_erro_sql.php on line 31 Warning: fclose(): supplied argument is not a valid stream resource in C:\Arquivos de programas\Apache Group\Apache2\htdocs\loja\class_erro_sql.php on line 24 o arquivo existe, o arquivo ta abrindo e ta com permissao de escrita... agora nao to entendendo... será que a var $this->desc_error ta sem valor !?!?!? Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Outubro 26, 2005 Aqui você esta usando $handle... public function Abrir_Log() { $handle = fopen($this->log_handle, 'ab'); } e aqui você esta usando $this->handle... fwrite($this->handle, $this->desc_error); Compartilhar este post Link para o post Compartilhar em outros sites
SiLLeNt 0 Denunciar post Postado Outubro 26, 2005 afeeesabia que era tudo bobera\o//bem erro de quem ta começando memo no oop hfuisfsdufisaok valeu Prog pela ajuda muito obrigado \o/ Compartilhar este post Link para o post Compartilhar em outros sites