Painel de administração com PHP + OOP - Aula 05

Aviso importante!

Eu sei que você não quer ver propagandas, porém o conteúdo gratuito só está aqui graças a publicidade. Considere desativar o AdBlock para esse site.

Sejam todos bem vindos à mais uma aula do curso de criação de um painel administrativo utilizando PHP e orientação a objetos. Iniciamos a aula de hoje codificando o arquivo autoload.php que será responsável por carregar as classes necessárias de forma dinâmica e automática em nosso sistema. Na sequência iremos atualizar a classe banco e a classe usuários conforme nossa necessidade.

Para finalizar iremos criar a função responsável por verificar se um determinado usuário existe em nosso banco de dados para podermos efetuar o login no sistema, ainda não iremos trabalhar com sessões nesta aula, mas a lógica do login estará toda concluída após a aula. Vamos criar também a função para fazer logoff do sistema.

Importante: Para quem estiver com problema no inclusão das classes por parte do autoload.php, basta retirar a barra antes da variável $classe na linha require_once($pathlocal."/$classe.class.php");

Mais posts desta série

Este post faz parte de uma série, confira tudo que já foi publicado sobre o mesmo assunto.

Sobre o autor

Ricardo Bernardi

Sou técnico em hardware e desenvolvedor web, e sobre estes dois assuntos comecei a compartilhar aulas e artigos, tornando-me blogueiro em 2008. Em 2010 esse hobby virou profissão, e desde então tenho buscado melhorar e profissionalizar cada vez mais os projetos que mantenho na web.

Comentários

Atualmente temos 112 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.

  • rodrigo1300 comentou em

    cara to tentando a uns 2 dia arruma os seguintes erros:

    Notice: Undefined variable: pathlocal in C:\xampp\htdocs\phpteste\classes\autoload.php on line 6

    Notice: Undefined variable: pathlocal in C:\xampp\htdocs\phpteste\classes\autoload.php on line 6

    Notice: Undefined variable: pathlocal in C:\xampp\htdocs\phpteste\classes\autoload.php on line 6

    Warning: require_once(dbs.class.php): failed to open stream: No such file or directory in C:\xampp\htdocs\phpteste\classes\autoload.php on line 6

    Fatal error: require_once(): Failed opening required 'dbs.class.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\phpteste\classes\autoload.php on line 6

    minha autoload.php esta assim:

    1

    ja vi revi todos os videos do 1 ao 5 onde vc fala disso e nada teria como me ajudar?

    Responder
  • Janiel Lopes comentou em

    Ricardo, não tem o vídeo que mostre como foram feitas as classes banco e base do sistema, pois não estou conseguindo fazer!

    Responder
    • Veja no post de introdução desse curso, todos os requisitos estão descritos lá, inclusive com links sobre os vídeos adicionais necessários ao desenvolvimento do sistema.

      Responder
  • Luis Antonio comentou em

    Olá Ricardo! Parabéns pelas vídeo-aulas.
    Estou com um problema e já vi as aulas várias vezes e não consegui descobrir, está dando esse erro:

    Fatal error: Call to undefined method usuarios::selecionaTudo() in D:\xampp\htdocs\aulas\painelADM\classes\usuarios.class.php on line 25

    Não sei o que está acontecendo, se puder me dar uma diga eu agradeço.
    Grande abraço!!!

    Responder
    • Você está chamando uma função que não existe, possivelmente há algum erro na nomeação dos métodos da sua classe ou então a inclusão da classe não está sendo feita corretamente.

      Responder
      • Luis Antonio comentou em

        Obrigado Ricardo, estava faltando public function selecionaTudo, já digitei e até o momento está dando tudo certo. Grande abraço!!!

        Responder
  • ricardoferreira comentou em

    Olá Ricardo!
    Conseguir resolver meu antigo erro, agora tô tendo erro na aula 5, quando tento logar com o usuario: admin e a senha admin, isso já todo tratado no banco de dados desde a criptografia. Ainda sim quando tento logar, aparece o erro de Dados incorretos ou usuario inativo do arquivo usuarios na função do post logar... Venho pedir a sua ajuda para que eu possa está dando continução ao restante das aulas. Agurado resposta...

    Responder
  • Fabiano comentou em

    boa noite! Alguem pode me ajudar no que pode ser esse erro?
    Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
    estou usando wampserver ja fiz a configuração error_reporting = E_ALL & ~E_NOTICE preciso fazer mais o que ?
    Obrigado!

    Responder
    • Esse curso utiliza recursos que foram descontinuados no PHP 5.5, para acompanhar o curso você deve usar uma versão mais antiga do PHP ou adaptar para as novas tecnologias.

      Responder
  • Cicero Henrique comentou em

    Olá ricardo parabens pelas aulas, consegui encontrar o erro da aula 4 e agora na aula 5 não consigo efetuar o login mesmo os campos estando corretos. só aparece a pagina 'erro=2' de que a senha esta incorreta ou o usario inativo poderia me ajudar?

    Responder
  • Raphael Lima comentou em

    Bom dia Ricardo! Primeiramente gostaria de parabenizá-lo pela iniciativa do blog, seu conteúdo é de muito boa qualidade!

    Estou seguindo a risca as suas aulas, porém estou com um problema que mesmo seguindo algumas soluções aqui dos comentários não funcionou, que é o seguinte:

    Quando faço o login, tá tudo certo, ele valida as informações no banco Ok.

    Problema: Na hora de chamar a função redireciona() ele da uma mensagem de erro assim: "Warnig: Cannot modify header information - headers already sent by.... usuarios.php on line 12.

    É só nessa página que dá erro, a função redireciona() funciona normalmente, mas na hora do login dá erro.

    Poderia me auxiliar?

    Responder
  • rubenscampos comentou em

    Aulas muito boas estou aprendendo muito, mas como resolver o problema do autoload, li todo post retirei a barra, estudei o manual autoload inteiro e não consegui resolver o meu problema erro na linha 6.

    Responder
  • tecfabio comentou em

    Ola Ricardo,

    Estou com um problema aqui, pois quando chega para criar a sessão a pagina fica em branco e não carrega a pagina painel.php.
    Ja olhei a aula varias veses e não detectei o erro.
    Ele para aqui

    public function doLogin($objeto) {
            $objeto -> extras_select = "WHERE login='" . $objeto -> getValor('login') . "' AND senha='" . codificaSenha($objeto -> getValor('senha')) . "' AND ativo='s'";
            $this -> selecionaTudo($objeto); 
            $sessao = new sessao();           
            if ($this -> linhasafetadas == 1) :
                
                $usLogado = $objeto -> retornaDados();
                $sessao -> setVar('iduser', $usLogado -> id);
                $sessao -> setVar('nomeusser', $usLogado -> nome);
                $sessao -> setVar('loginuser', $usLogado -> login);
                $sessao -> setVar('logado', TRUE);
                $sessao -> setVar('ip', $_SERVER['REMOTE_ADDR']);
                return TRUE;
            else :
                $sessao -> destroy(TRUE);
                return FALSE;
            endif;

    Mas quando eu retiro a parte de sessão(conforme abaixo), carrega o painel.php normalmente...

    public function doLogin($objeto) {
            $objeto -> extras_select = "WHERE login='" . $objeto -> getValor('login') . "' AND senha='" . codificaSenha($objeto -> getValor('senha')) . "' AND ativo='s'";
            $this -> selecionaTudo($objeto); 
            if ($this -> linhasafetadas == 1) :
                return TRUE;
            else :
                return FALSE;
            endif;
    Responder
  • Anderson Antonio comentou em

    Como está Ricardo.
    Essa aula me deu dor de cabeça demais, porém deu tudo certo e não foi necessário retirar a barra como citou acima, fico muito grato a você pela qualidade do conteúdo, fiz exatamente como ensinou na sua vídeo-Aula e realmente todos os códigos estão ok conforme vc afirma em suas respostas nos comentários, parabéns.

    Se conseguir acreditar qual era o meu erro, pois nem eu mesmo acredito, falta de atenção pura e infantil.

    Reassisti todas as aulas do crud e as cinco primeira deste, para descobrir que o erro estava na digitação do nome da ( Pasta Classes ), também você não ensinou que era com dois S., estava assim (clases) e o erro era inevitável.

    Mesmo assim valeu, usei o tempo de revisão para entender melhor o que vc criou é realmente ótimo mesmo, facilita e agiliza muito.

    Fique com Deus e um ótimo Domingo de Páscoa a você e seus familiares.
    Lembre-se: "A ressurreição de Cristo nos concede o direito do Perdão", dê um oi pra Ele amanhã.

    Um grande abraço a todos.

    Responder
  • frank comentou em

    estou com o seguinte erro:

    Warning: require_once(/base.class.php) [function.require-once]: failed to open stream: No such file or directory in /home/megaipne/public_html/painel/classes/autoload.php on line 12

    Fatal error: require_once() [function.require]: Failed opening required '/base.class.php' (include_path='.:/usr/local/lib/php') in /home/megaipne/public_html/painel/classes/autoload.php on line 12

    Como resolver

    Responder
  • Gabriel Duarte comentou em

    Como posso arrumar variável não definida nas seguintes linhas - Arquivo: modulos/usuarios.php?

    <input type="text" size="35" name="usuario" value="" />
    <input type="password" size="35" name="senha" value="" />

    Se eu defino valor inicial para elas como vazio ou nulo, o login não é feito. E dando erro de definição também não é feito o login.

    Responder
  • Gabriel S. comentou em

    engraçado é que não é validado quando eu tento inserir os dados para login, nunca entra, sempre fica dando o erro2, engraçado é que não retorna nenhum outro erro, mesmo quando o usuario e a senha estão corretos o erro2 vem.
    To quebrando a cabeça aqui a uns 4 dias, não sei onde ta o erro, tentei fazer uma lógica minha, mas acabei tendo que imitar tudo igual a você nessa parte e mesmo assim não rolou.

    Responder
  • Boa tarde Ricardo,
    Estou com um problema no require_once que vai dentro da função inicializa() que chama o autoload.php, seu eu coloco como include ele funciona mas se eu colocar como require_once ele não funciona, será que poderia me ajudar a desvendar isso?

    Responder
  • philipess23 comentou em

    olá Ricardo, estou com um problema da parte de usuários para fazer o login.

    não está encontrando a classe olhei o código e está correto.

    switch ($tela) {
    case 'login':
    if (isset($_POST['logar'])):
    $user = new usuarios();

    já revi as videos aulas um monte de vezes e ate refiz mais o erro persiste.

    Fatal error: Class 'usuarios' not found in C:\wamp\www\painel\modulos\usuarios.php on line 22

    Responder
    • Anderson comentou em

      Olá Philipess e Ricardo. estou fazendo esse curso agora e estou como esse mesmo problema:
      Fatal error: Class 'usuarios' not found in C:\wamp\www\painel\modulos\usuarios.php on line 9

      já fiz todos os procedimentos para carregamento de classe dinâmica, mas mesmo assim ele
      não acha a classe criada no meu objeto e não existe nenhum erro de sintaxe.

      Se algum de vocês já resolverão o problema e quiserem me ajudar, fico no aguardo.

      Responder
  • clfinfo comentou em

    Parabéns pelas aulas, são maravilhosas, to conseguindo entender... Agora parei aqui neste erro.

    Ocorreu um erro com os seguintes detalhes:
    Arquivo: C:\wamp\www\FJVTO\visionware\classes\banco.class.php
    Rotina: conecta
    Codigo: 2002
    Mensagem: php_network_getaddresses: getaddrinfo failed: Este host não é conhecido.

    O que pode ser isso. Obrigado!

    Responder
  • Vagner Ramos comentou em

    Ola amigo... primeiro parabéns pelas aulas, são sensacionais, to conseguindo entender na boa, apenas aqui que surgiu uma NOTICE: inesperada... fiz o processo de retirar a barra no autoload, mas mesmo assim o erro continua a aparecer na minha tela.

    Notice: Undefined variable: pathlocal in C:\xampp\htdocs\adm\paineladm\classes\autoload.php on line 6

    isso é algo diferente da sua solução de retirar a barra??

    Agradeço se puder responder..

    Responder
  • kayobruno comentou em

    Notice: Undefined variable: pathlocal in C:\xampp\htdocs\aptana\PainelADM\classes\autoload.php on line 9

    Notice: Undefined variable: campo in C:\xampp\htdocs\aptana\PainelADM\classes\Base.class.php on line 44

    Estou com os seguintes erros acima, tem como me ajudar?
    removi a barra no arquivo autoload igual foi mencionado no aviso do video: require_once($pathlocal."/$classe.class.php");
    Mas ainda continuo com esses erros...
    :(

    Responder
  • Emerson R. comentou em

    Ricardo. Obrigado pela aula de excelente nível!

    Porém, ao seguir as aulas, me deparei nesta aula 05, como seguinte erro:

    Fatal error: Class 'usuarios' not found in ....usuarios.php on line 15

    15 $user = new usuarios();

    O que poderia ter ocorrido de errado?? Visto que fiz uma revisão desta aula e não encontrei nada até o momento? Poderia dar um auxílio?

    Abraços

    Responder
      • Emerson R. comentou em

        Ricardo,
        Fiz todo o CRUD, inclusive as alterações mensionadas neste curso. Mesmo analisando os arquivos mensionados nos requisitos, não consegui encontrar o problema...

        Responder
        • Analise seu erro: Classe 'usuarios' não foi encontrada no arquivo usuarios.php na linha 15. Agora busque o motivo da classe não estar sendo encontrada.
          1- A classe não existe; 2- O arquivos/classe tem erros no seu nome/chamada; 3- O arquivo onde ela está não está sendo incluso no script necessário;

          Responder
  • cidao comentou em

    Olá Ricardo.Primeiramente gostaria de parabenizar pelo trabalho que você está realizando está sendo de grande ajuda na vida minha acadêmica.
    Gostaria de pedir um help como sou novo em php estou tendo uma dificuldade de interpretar o seguinte erro:
    ( http://codetidy.com/6598/ ). conforme as instruções de política de comentários Este erro ocorre quando tento logar com o usuário já cadastrado em banco usuário: admin e senha: admin mostrado na aula 5 e também o arquivo
    autoload.php ( http://codetidy.com/6597/ ) está de acordo como foi mostrado na vídeo aula. Desde já agradeço a ajuda.

    Responder
      • cidao comentou em

        Ricardo mais uma vez obrigado,conseguir executar utilizando as instruções do Roberto Munhoz
        "Tive que tirar a barra no autoload:
        require_once($pathlocal."$classe.class.php");"
        e também obrigado Roberto Munhoz por compartilhar essa informação.

        Responder
        • cidao comentou em

          Mas tem um porem quando retiro as barras, não está validando o usuário qualquer senha que eu coloco está mostrando a página eu sou o painel.php. Ricardo nesse caso terei que rever a função de validação de usuário no arquivo usuario.class.php ?
          Tentei também utilizar a instrução do Eric Coutinho colocando o @(arroba) antes do comando mas a página fica em branco não mostrando nada. desde já agradeço

          Responder
  • Amigos,

    Primeiramente gostaria de parabenizar ao Ricardo Bernardi pelo trabalho e pela iniciativa.

    Vi que algumas pessoas estão com problemas no autoload.
    Verifiquem se o autoload está escrito corretamente (o correto é "__autoload()", com dois underlines seguidos).

    Caso alguém esteja com "Warnings" ao executar a função, basta colocar um "@" (arroba) no início do comando para suprimir o aviso (preferi fazer assim do que alterar o Wamp pois, caso seja obrigado a transportar o projeto para um servidor de terceiros, corremos o risco dele apresentar as warnings na execução..

    Espero ter ajudado alguém.
    Um abraço!

    Responder
  • cucadi comentou em

    Olá. Realmente muito bom e parabéns pelo trabalho.

    Estou com uma dúvida sobre o arquivo usuarios.class.php na questão de lógica.
    Para eu acessar outro banco ou outra tabela, eu teria que criar outra xxxx.class.php ou como faria pra acessar varias tabelas usando somente uma class? A exemplo, como que eu faria pra usar o modulo (usuarios.php) acessando varias tabelas, mas usando somente a usuarios.class?

    Obrigado desde já

    Responder
  • gabriel comentou em

    estou com um problema se vc poder me ajudar, la no meu wamp nao vei os arquivos, como o banco.class.php, base.class.php e os outros que deveriam estar junto a estes.

    Responder
  • Roberto Munhoz comentou em

    Muito engraçado, quando vou logar 22:30 do vídeo, em vez de ir ao Painel, aparece a tela em branco com a mensagem erro!! Somente erro!!! Fucei tudo e cheguei na seguinte dúvida:

    É aqui que dá esta mensagem!! Quando via criar o objeto. Já não sei mais o que fazer. Os códigos estão idênticos. O que muda apenas é que não está no diretório raiz e sim em um sub, tipo http://www.site.com.br/painel/index.php.

    Tive que tirar a barra também no autoload:
    require_once($pathlocal."$classe.class.php");

    Responder
    • Roberto Munhoz comentou em

      É justamente neste código:
      switch ($tela) {
      case 'login':
      if (isset($_POST['logar'])):
      $user = new usuarios();

      Quando crio o objeto usuarios que dá o erro. Já olhei a classe e está tudo conforme as aulas, alias, tudo estava funcionando até aqui.

      Responder
  • Anderson Silva comentou em

    Olá, primeiro parabéns pelas aulas!
    Seguinte, estou na video-aula 4 do painel de administração!
    Mas,o video já inicia tendo o arquivo banco.class.php codificado, e não dá pra ver a parte final do codigo, portanto, não consigo finalizá-lo.

    E quando tento logar dá esse erro:
    Fatal error: Call to undefined method usuarios::trataerro() in C:\xampp\htdocs\caseii\paineladm\classes\banco.class.php on line 26

    Favor, se puder me ajudar!
    Obrigado!
    Anderson

    Responder
  • leandrohenrique comentou em

    Ola Ricardo boa noite,
    O meu sistema esta igual ao das aulas ja revi os videos diversas vezes e ainda não consegui constatar o erro, o meu erro esta quando vou clicar no botão de login não estou conseguindo redirecionar para a pagina painel.php e/ou nem para o erro=2, aparece uma pagina em branco, gostaria que pudesse solucionar o meu problema, aguardo resposta.

    Responder
      • leandrohenrique comentou em

        Ola boa tarde, agora estou em um dilema gostaria de sua ajuda, entâo codigo esta certinho ate onde fiz, eu desenvolvo no ambiente mac os e o codigo não deu certo, mais quando testei com windows deu certinho você tem algo que mim possa explicar sobre isso?

        Responder
  • ProtesT comentou em

    sim mais existe um porém, eu sigo as aulas e ta dando certo, não seria o caso de esta errado agora, toda aula testo o sistema feito nas vídeos aulas e sempre da certo;

    Veja minha database
    http://www.iaza.com/work/130307C/iaza11484758854800.png

    Veja código de usuarios.class.php
    http://www.iaza.com/work/130307C/iaza11484757370300.png

    Veja código de usuarios.php
    http://www.iaza.com/work/130307C/iaza11484745162200.png

    Veja config
    http://www.iaza.com/work/130307C/iaza11484730550100.png

    tem algo errado?

    Responder
    • Você disse que está dando "senha incorreta", então você tem algo que não está batendo nas comparações das funções de login. Verifique todo código que é chamado na hora de logar o usuário e você vai encontrar o erro.
      Verifique os comandos SQL e veja se nada está errado (lembre-se que espaços a mais ou a menos podem alterar o resultado do SQL).

      Responder
        • Você já pensou que pode ter cadastrado dados errados no BD ou então estar tentando usar dados que não sejam os cadastrados? Parece ridículo, mas creio que teu erro esteja no usuário cadastrado no BD e não na codificação.

          Responder
          • ProtesT comentou em

            Olá ricardo por incrivel que parece era isso mesmo usuario errado kk desculpa pode deleta o comentário acima para nenhum membro utiliza do código fonte até a aula 5 séria injusto para quem paga, para ter o sistema completo

  • ProtesT comentou em

    ricardo eu fiz certinho porem vou efetua meu login sempre da senha incorreta já verifiquei revi a aula 3x e nada mudei a senha no phpmyadmin tbm nada poderá me ajudar?

    Responder
    • O fato de não ter funcionado aqui não quer dizer que seu erro esteja nesta aula, uma vez que já estamos trabalhando com estas funções há mais tempo. Verifique toda rotina de login e acesso ao banco.

      Responder
  • Professor, estou acompanhando suas videos aulas, mas encontrei um erro, que é no autoLoad.php
    vejamos eu crio a variavel $pathlocal, fora do function fora do escopo da function __autoload(), mas quando vou concatenar o $pathlocal nos logs do php, aparece que esta variavel está indisponível ou não definida, ou seja, parece não estar tendo acesso à variavel por dentro da função e agora?!
    Agradeço desde já!

    Responder
    • Óbvio, uma vez que a function acessa somente o que é local dentro de seu escopo. Se você quer usar uma variável já declarada você vai precisar dizer que ela é global dentro da function para ter acesso a ela.

      Responder
  • Edson comentou em

    Olá Ricardo.
    Gostaria de saber se é possivel ocultar parâmetros passados na URL com ?erro=3 e outros que são criados para captura de mensagens e redirecionamentos.

    Responder
  • super2000 comentou em

    Olá eu queria saber como posso exibir imagens no meu painel mas colocando as imagens no banco!Ex. eu coloco as imagens no banco de dados e depois eu quero exibir na tabela ou na pagina!! como faco, sou muito grato!!!!

    Responder
  • Prezados,
    Resolvi as questões dos notices de acordo com a video aula do WAMP.
    Porem agora continuo com o ultimo erro postado anteriormente .
    Fatal error: Cannot call constructor in C:\Program Files (x86)\xampp\htdocs\paineladm\classes\usuarios.class.php on line 8.

    Como no post anterior vou seguir tentando...
    Se puderem me ajudar...
    Abrigado,

    Responder
  • adebastiani comentou em

    Olá Ricardo,

    porque você ja não define no header o jquery validate em vez de colocar no usuários.

    Responder
  • theone comentou em

    Caro professor,

    - Acabei de depurar melhor o erro e encontrei o mesmo, o erro está no arquivo: classes/autoload.php

    <?php
    $pathlocal = dirname(__FILE__);
    require_once(dirname($pathlocal)."/funcoes.php");
    function __autoload($classe){
        $classe = str_replace('..', '', $classe);
        require_once($pathlocal."$classe.class.php");
    //   require_once($pathlocal."/$classe.class.php");   
    }
    ?>

    - Como pode ser visto acima apenas removi a barra (linha comentada), e está funcionando perfeitamente. Obrigado.

    Responder
    • Prezado Theone ou Moderador,

      Estou com o seguinte erro:
      Notice: Undefined variable: pathlocal in C:\Program Files (x86)\xampp\htdocs\paineladm\classes\autoload.php on line 6

      Notice: Undefined variable: pathlocal in C:\Program Files (x86)\xampp\htdocs\paineladm\classes\autoload.php on line 6

      Notice: Undefined variable: pathlocal in C:\Program Files (x86)\xampp\htdocs\paineladm\classes\autoload.php on line 6

      Fatal error: Cannot call constructor in C:\Program Files (x86)\xampp\htdocs\paineladm\classes\usuarios.class.php on line 8

      Fazendo com que o resto do código não continue.
      Fiz o que o Theone postou mas mesmo assim não consegui progredir.
      Se um de vocês puder me ajudar eu agradeço.
      Até lá vou tentando descobrir caso eu chegue até o resultado antes eu contribuo.
      Abraço.

      Responder
    • Rodrigo Ubiratan comentou em

      Meu amigo theone,

      estava aqui quebrando minha cabeça com esse problema. Você salvou minha tarde. Obrigado!

      Responder
  • theone comentou em

    Olá caro professor,

    - Antes de mais nada meus parabéns pelo trabalho ;)

    Bem eu segui todos os passos e pude absorver bastante das suas aulas (realmente gostei muito) porém obtive um erro com o meu servidor (Apache/PHP 5.3.17), mesmo tendo a certeza de que tudo estava idêntico à vossa explicação, tentei por horas reparar o erro, dei uma Googlada, e finalmente comprei alguns créditos para ter acesso ao código fonte, e o mesmo erro persiste, temos vários servidores um data centers e S.O diferente e em todos tenho exatamente o mesmo erro: (Só queria deixar claro que recorro à vossa ajuda depois de tentar quase tudo. (Obrigado)

    Erro: ****************************************
    PHP Warning:  require_once(/sessao.class.php): failed to open stream: Arquivo ou diret\xf3rio n\xe3o encontrado in /var/www/developer/painel_admin/classes/autoload.php on line 6
    PHP Stack trace:
    PHP   1. {main}() /var/www/developer/painel_admin/index.php:0
    PHP   2. loadmodulo() /var/www/developer/painel_admin/index.php:19
    PHP   3. include_once() /var/www/developer/painel_admin/funcoes.php:46
    PHP   4. __autoload() /var/www/developer/painel_admin/funcoes.php:8
    PHP Fatal error:  require_once(): Failed opening required '/sessao.class.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/developer/painel_admin/classes/autoload.php on line 6
    PHP Stack trace:
    PHP   1. {main}() /var/www/developer/painel_admin/index.php:0
    PHP   2. loadmodulo() /var/www/developer/painel_admin/index.php:19
    PHP   3. include_once() /var/www/developer/painel_admin/funcoes.php:46
    PHP   4. __autoload() /var/www/developer/painel_admin/funcoes.php:8
    Fim Erro: *******************************************
    Responder
  • Diogo comentou em

    Olá Ricardo, acompanhei suas aulas sobre o painel de administração. Tudo funciona normalmente, porém, ao executar em um servidor remoto a rotina de validação do usuário (aula 05), a mensagem de erro não aparece como deveria e a página aparece em branco.

    Já no servidor local (xampp) esse problema não ocorre.

    Minha dúvida é a seguinte...
    Existe alguma diferença nas configurações das constantes no caso de rodar a aplicação em um servidor remoto?

    código postado fora das regras

    Responder
    • zumba65 comentou em

      Ola amigo. Você conseguiu solução para o seu problema? Pode me ajudar? estou com o mesmo problema

      Responder
  • roger.rmcc comentou em

    resolvi meu erro ao comparar o código e novamente o erro era digitação...
    estava assim...

    "' ANDsenha='"

    eu tinha dado enter logo após o AND e não vi que estava faltando o espaço peço desculpa ai galera, e vamos prestar atenção \o/ :D

    Responder
  • Roger comentou em

    Ricardo estou com um problema, e não consigo resolver, esta tudo certo a 5° aula mas na hora de fazer os testes, não autentica e vai sempre para o erro 2 já mudei a senha ja revi o código e nada e não da nenhum erro simplesmente diz que a senha esta errada :S

    Responder
    • super2000 comentou em

      Olá, Eu tambem estou com este problema! eu faco o teste de login mas da sempre erro 2! Eu ja olhei e refiz todos os codigos mas nada, sempre o erro 2! sera que podem me ajudar?

      Responder
  • Roger comentou em

    estou com erro na linha

    $objeto->extras_select = "WHERE login='".$objeto->getValor('login')."' AND
    senha='".codificaSenha($obejto->getValor('senha'))."' AND ativo='s'";

    Erro fatal: Chamada a um getValor função de membro () em um objeto não em C: \ wamp \ www \ \ RMCC paineladm \ classes \ usuarios.class.php na linha 25

    já revi o video varias veses

    Responder
  • Luis Fernando Kalfels comentou em

    Ricardo, estava enfrentando um problema aqui nesta aula e consegui achar a solução.
    Como sou iniciante em PHP OO demorei um pouco pra conseguir hehehe.
    Seguinte, fiz o curso de CRUD anteriomente porém a função executaSQL do banco.class.php do curso deve ser alterada para esta aula 05. Segue o código original da função:

    public function executaSQL($sql=NULL){
    		if($sql!=NULL):
    			$query = mysql_query($sql) or $this->trataerro(__FILE__,__FUNCTION__);
    			if(substr(trim(strtolower($sql)),0,6)=="select"):
    				$this->dataset = $query;
    				return $this->dataset;
    			else:
    				$this->linhasafetadas = mysql_affected_rows($this->conexao);
    				return $this->linhasafetadas; 
    			endif;
    		else:
    			$this->trataerro(__FILE__,__FUNCTION__,NULL,'Comando SQL nao informado na rotina',FALSE);
    		endif;
    	}//executaSQL

    O código acima diz que se a instrução for "select" haverá um retorno para o dataset dos dados, caso contrário retorna para linhasafetadas 0.

    Removi o else e agora está retornando 1 para linhasafetadas, tem como confirmar se o código estava com este problema mesmo e se tem uma forma de melhorar? ou ficaria assim mesmo?

    Grato e parabéns!!! suas aulas são altamente recomendáveis!!!

    Abraço.

    Responder
    • Luis, no curso do CRUD (que é requisito para este) a função em questão já é alterada para atender a necessidade do sistema, portanto essa alteração a que você se refere já foi feita (na aula 5 do CRUD).

      Responder
  • Tiago comentou em

    Ola tudo bem?

    Já fiz de tudo, mais na hora que tento logar mesmo eu chamando a funcao correta, quando eu aperto o botao login ele fica branco porque pode me ajudar????

    preciso urgente disso ...

    aguardo.

    obrigado.

    Responder
  • marcos holanda casagrande comentou em

    ola ricardo, bom eu estou com um problema para resolver, se tiver um tempinho tem como responde para mim, meu caso seria com a header que não redimenciona para pagina ele gera um erro assim: Warning: Cannot modify header information - headers already sent by (output started at C:\VertrigoServ\www\tecnoflash\admin\index.php:7) in C:\VertrigoServ\www\tecnoflash\admin\funcoes.php on line 58

    Responder
    • marcos holanda casagrande comentou em

      ola pessoal acabei de descobrir com resolver o problema da header e somente colocar na funcoes depois da abertura do php o comando ob_start()
      espero ter ajudado alguem
      obrigado

      Responder
  • Lucas comentou em

    Bom dia Ricardo, primeiro parabéns pelo conteudo, show as aulas, gostei muito.

    Tenho um divida, pelo que estou vendo esta sendo validado os dados dos formulário apenas pelo jquery, isso poderia ter algum problema de alguém conseguir desativar essa validação?

    Se eu quiser fazer validação também em php terei que fazer todo os método get e set para cada campo do formulário, certo?

    Fico no aguardo
    Obrigado.

    Responder
    • Minha sugestão é criar uma classe para validação, desta forma você pode implementar métodos para validar qualquer tipo de dados (moeda, datas, strings, etc) em um único lugar.

      Responder
  • Natan Alves comentou em

    Olá Ricardo, eu assisti a aula, verifiquei todas as linhas para ver se não estava faltando algo e não está mas toda vez que tento logar ele vai para "http://localhost/system/?erro=2".

    Tudo está correto mas sempre da nisso, o que pode ser?

    Responder
  • Natália comentou em

    Boa tarde Ricardo eu estava com o mesmo problema do Paulinho, então li sua reposta e achei meu erro, obrigado as vezes nossos erros são tão simples. Valeu o conselho e parabéns pelas video aulas!

    Responder
  • Paulinho Neto comentou em

    apareceu esse problema não consegui resolver :

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\paineladm\index.php:12) in C:\xampp\htdocs\paineladm\funcoes.php on line 75

    Responder
    • Paulinho comentou em

      e terceira vez que posto duvida aqui e voce moderador nao responde e exclui minha moderação ja que nao sabe deixa ae para aguem que saiba responder

      Responder
      • Em primeiro lugar Paulinho, nenhum comentário seu foi excluído.
        Em segundo lugar eu dedico o final de semana a ficar com minha família e não o dia todo na internet procurando solução para os problemas alheios.
        Em terceiro lugar, já que eu não sei, vou deixar "ae" pra ver se alguém saiba responder ou então para você procurar seu próprio erro, considere esta última opção.

        Responder
  • Paulinho Neto comentou em

    bom ate aula 4 foi tudo dando certo quando chegou nessa quinta apareceu o seguinte erro

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\paineladm\index.php:11) in C:\xampp\htdocs\paineladm\funcoes.php on line 70

    Responder
  • quando eu abri cheguei na parte 17:50 do vídeo, e fiz todos esse processo:

    if(isset($_POST['logar'])):
    			$user = new usuarios();
    			$user->setValor('login',$_POST['usuario']);
    			$user->setValor('senha',$_POST['senha']);
    				if($user->doLogin($user)):
    					redireciona('painel.php');
    				else:
    					redireciona('?erro=2');
    		endif;
    	endif;

    deu o seguinte erro:

    Ocorreu um erro com os seguintes detalhes:
    Arquivo: C:\wamp\www\paineladm\classes\banco.class.php
    Rotina: conecta
    Codigo: 2002
    Mensagem: php_network_getaddresses: getaddrinfo failed: Este host n�o � conhecido.

    Não consegui identificar o erro, tudo antes desse procedimento estava funcionando corretamente até nas aulas do CRUD, será que você poderia me ajudar?

    Responder
  • Adilson Rumao comentou em

    Desculpe Ricardo mas, nos últimos posts vocês está sendo muito mal educado com a rapaziada. Apesar de estar tudo explicado no Post Inicial acho que não custaria nada dizer que sim ou que não.

    E Sidney pode sim é este vai ser uma sequência daquele curso.

    Responder
    • Olha Adilson, eu não estou sendo mal educado, apenas tive o trabalho de explicar todo funcionamento no início do curso justamente para não haver a mesma pergunta a cada postagem, então não vejo necessidade de ficar repetindo tudo que já foi explicado com antecedência.

      Responder
      • Olá Ricardo, bom percebi também que vc anda um poko mal educado com o povo ai... se tem lugares pra postar perguntas, isso no certo são para tirar as dúvidas, não vejo o prq vc ser mal educado, ja vi em várias vídeos aulas suas, a forma q vc trata o pessoal.
        Seja um poko mais educado, que concerteza vc tem muito a ganhar.

        Fica essa dica ai.

        Um abraço

        Responder
        • eu sempre assisto as aulas aqui pela madrugada e nesse caso não tinha reparado que eu poderia usar os arquivos do CRUD.
          Acho que o toque dos leitores quanto a educação em responder as perguntas nos posts é valida, por mais que elas sejam repetitivas.
          Afinal somos os "consumidores" do blog.
          eu peço desculpas por não te prestando atenção na primeira vez que assisti a aula.
          depois do comentário(admin) eu até fui rever a aula.
          no mais o blog segue no padrão de qualidade!

          Responder
  • Jonnhy Matos comentou em

    Saudações Ricardo!
    Desculpa a demora de comentar!
    Como sempre, suas aulas são maravilhosas.
    Queria deixar uma dica pra você e para todos que acharem valiosa.
    Ha um certo tempo eu usava o Apache e cia Ltda. como webserver, mas tive alguns problemas, depois passei para o Wamp, funcionou bem mas apareceram certos problemas também, então deixei de lado os servidores. Depois que comecei a estudar C# e Asp.Net por acaso conheci o WebMatrix, e garanto que é perfeito. Suporta várias linguagens, pra quem está bem no começo ele tem vários modelos ótimos para estudo, e o que eu mas gostei nele: não precisa se preocupar com webserver, ele mesmo faz isso sem precisar configurar manualmente. Crio os meus projetos de estudo, vou programando e quando quero ver o resultado apenas clico em "Run" e ele abre no navegador como se fosse na internet, e eu não tenho nenhum webserver aqui no meu pc. E ele tem um sistema de FTP que é o melhor que eu já vi. Eu tenho um projeto que está em hospedagem grátis(eu vi o vídeo que você disse que é coisa de amador, mas para o que estou desenvolvendo eu preciso ter certeza de que vai funcionar para que eu possa investir), eu conecto com o FTP do meu site e ele mostra toda a estrutura do site(pastas, arquivos...) e se eu abrir o "Remote View", posso ir programando e vendo os resultados online, sem ter que ficar fazendo download e upload de arquivos. Então fica a dica pra quem quiser. Eu recomendo.
    Grande abraço e obrigado por compartilhar seu conhecimento conosco. Até mais!

    Responder
  • Kikinho Fernandes comentou em

    Parabéns mais uma vez a equipe RBTech. Ótimo vídeo aula, aguardamos ansiosos pela continuação, pois um conteúdo deste nível compartilhado desta maneira, somente por pessoas que realmente sabem fazer. Estando sempre na frente! Aprendemos a programar de forma profissional, evitando erros primários!
    Um abraço a todos!

    Responder
  • Adilson Rumao comentou em

    E aí galera pararam de curtir as VAs? Vamos colaborar com o Site na divulgação e aproveitar a oportunidade e aprender com um curso que não se encontra por aí.

    Com uma qualidade desta não se acha por aí mesmo.
    Parabéns novamente pela iniciativa.

    Responder
  • Murilo Campos comentou em

    Olá Ricardo,
    Primeiramente, tenho a agradecer pelas aulas, são muito boas. Quanto ao sistema, tenho realizado o mesmo em meu computador, mas apresentou alguns problemas, que acho ter
    solucionado. Então, gostaria de saber se a solução adotada é recomendada. Abços

    if ($_GET['logoff']==TRUE):
            $user = new usuarios();
            $user->doLogout();
            exit;
        endif;

    Problema:
    Undefined index: logoff in C:\wamp\www\aulas\php\paineladm\funcoes.php on line 20

    Solução:

    if (isset($_GET['logoff'])==TRUE):
            $user = new usuarios();
            $user->doLogout();
            exit;
        endif;
    public function start(){
            session_start();
            $this->id = session_id();
            $this->setNvars();

    Problema:
    A session had already been started - ignoring session_start()

    Solução:

    public function start(){
            if(!isset($_SESSION))
    		{
    		session_start();
    		}
            $this->id = session_id();
            $this->setNvars();
        }
    Responder

Deixe seu comentário