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

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. Nesta aula inicialmente iremos tratar os erros que serão mostrados na tela de login conforme a situação. Em seguida estilizamos as caixas de exibição destes erros para que tudo seja exibido com o devido destaque quando necessário. Ainda na tela de login iremos criar a validação dos campos de login e senha com o jQuery Validate.

Dando sequência vamos melhorar um pouco a função de inicialização do sistema fazendo um loop para validar todas as constantes do arquivo config.php, impedindo assim que o sistema funcione caso alguma das constantes não seja definida corretamente.

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 39 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.

  • Guilherme Vasconcelos comentou em

    Olá, bom dia Ricardo!

    Cara, estou com um erro ao tentar validar minha conta, quando acesso com a conta errada ou certa, ele acusa o mesmo erro. Que é este:

    Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\eleicoes_paineladm\classes\banco.class.php:28) in C:\wamp\www\eleicoes_paineladm\funcoes.php on line 62

    E gostaria de saber o que houve.. pois revi todos os códigos, a vídeo aula inteira, a anterior também e tudo estás igual. Tentei buscar o erro também na internet e nada também.

    Agradeço!

    Responder
  • manoel.pmp comentou em

    Parabéns Ricardo pela iniciativa. estava pra desistir de procurar um curso sobre painel adm php, mas pura sorte encontrei esse curso excelente!!!
    Ainda por cima gratuito, um grande abraço feliz ano novo, que você faça mais excelentes cursos. que Deus te abençoe!!

    Parabéns.

    Responder
  • clebersena comentou em

    Ao clicar no menu "Usuários" / "Cadastrar" ...

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

    ( ! ) Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\wamp\www\aulas\php\paineladm\classes\banco.class.php on line 133
    Call Stack

    Responder
  • clebersena comentou em

    Boa noite Ricardo!
    Refiz várias vezes antes de postar, não consigo resolver,. Na tela de login aparece isso dentro do form: Notice: Undefined index: usuario in C:\wamp\www\aulas\php\paineladm\modulos\usuarios.php on line 15 Call Stack #TimeMemoryFunctionLocation 10.0019671864{main}( )..\index.php:0 20.0081704088loadmodulo( )..\index.php:19 30.0152717632include_once( 'C:\wamp\www\aulas\php\paineladm\modulos\usuarios.php' )..\funcoes.php:41 " />
    Dá o mesmo erro na senha.

    Já até copiei os seus códigos e não dá certo, acho que pode ser configuração mas, não sei fazer. Obrigado. Cleber

    Responder
  • Ivan Pendragon comentou em

    Olá, Ricardo, eu faço tudo conforme as vídeo aulas, mais eu não consigo fazer login, com senha errada ou certa, acaba apagando a tela de login, mais nunca sai do index, também não aparece mensagem de erro, o que pode ser?

    Responder
  • Paulo Tosi comentou em

    me deparei com um duvida na função inicializa(); que faz do sistema de cadastro com OOP, funçao seria essa aqui:

    Vou colocar apenas um trecho que o meu problema seria logica mesmo.

    http://pastebin.com/AHDpVd2Z

    Na parte que esta o IF (!defined) , ele vai apenas pegar um valor que não esta definido, e iria passar o die de apenas um valor gostaria de se tiver mas de um valor ele mostra-se quais que faltam, se poder me ajudar irei agradecer muito

    Responder
  • Vicka comentou em

    Até a aula 3 ocorreu tudo conforme os seus vídeos, mas nessa aula 4 não aparecevem as mensagens de validação nem em inglês e nem em português. Clico no botão Login, e nada acontece, permanece na mesma tela com os dois campos.
    Obrigada e excelente seus vídeos.

    Responder
  • Thiago comentou em

    Nessa aula estou com um problema que ñ consigo resolver, dentro dos meus inputs aparece essa msg, o que pode ser?

    Responder
  • jamjs7@hotmail.com comentou em

    Ricardo, to com um problema na hora de fazer o login. Acontece o seguinte eu digito login e senha e a pagina fica em branco, não é redirecionada nem para painel.php, nem para um dos erros. Percebi que isso acontece toda vez que eu instancio o usuario. Sinceramente ja olhei o codigo 1000 vezes e não acho o erro. Alguma ideia do que pode estar errado? Caso tenha algum email para que eu possa te mandar o codigo por favor entrar em contato.

    Responder
  • jeovane lemes comentou em

    Ola Ricardo mais uma vez eu por aqui, então não sei se já aconteçeu com vc mas comigo as validações esta dando um bug no navegador Internet 8 nos outros navegadores as validações funciona normalmente o I.E 8 ele esta pedindo identificado ou sequencia de numero esperado.

    Responder
  • Tiago comentou em

    Eu preciso saber onde estou errando .... não consigo achar o erro de jeito nenhum... me ajuda !!!

    Responder
  • Tiago comentou em

    Estou com problema com a validação não consigo fazer ele funcionar de jeito nenhum me ajuda por favor !!! quero usar essa base para um projeto maior.

    aguardo.

    Responder
  • Kikinho Fernandes comentou em

    Olá Ricardo,
    estamos nesta video aula protegendo o arquivo funcoes.php para ele não ser acessado direto, ok. E a questão do arquivo config.php?, ele não será protegido? pois nele contém o usuário e senha do BD. Está é minha dúvida.
    Um abraço.

    Responder
  • Eliezer Cham comentou em

    Oi Ricardo,
    Estou gostando muito do projeto.

    Mas estão ocorrendo dois erros, li que foi postado mas não tinha a solução.

    A primeira está no preenchimento do value do formulário:

    value=""

    O erro é:

    ( ! ) Notice: Undefined index: usuario in D:\Dados\estudos\Painel Administrativo\modulos\usuarios.php on line 26 Call Stack #TimeMemoryFunctionLocation 10.0004672792{main}( )..\index.php:0 20.0015705064loadmodulo( )..\index.php:19 30.0020720312include_once( 'D:\Dados\estudos\Painel Administrativo\modulos\usuarios.php' )..\funcoes.php:41 " />

    Não está definindo o usuário, como você faz para definir?
    Eu tirei a linha de código e coloquei manualmente, mas você não faz assim.

    O outro erro é o seguinte:

    ( ! ) Notice: Undefined index: erro in D:\Dados\estudos\Painel Administrativo\modulos\usuarios.php on line 35
    Call Stack
    # Time Memory Function Location
    1 0.0005 676728 {main}( ) ..\index.php:0
    2 0.0015 709000 loadmodulo( ) ..\index.php:19
    3 0.0018 724248 include_once( 'D:\Dados\estudos\Painel Administrativo\modulos\usuarios.php' ) ..\funcoes.php:41

    ele está criando caso com o

    $erro = $_GET['erro'];

    Porque será, já testei com o código fonte que baixei e dá o mesmo erro.

    Deve ser algo bem bobo, não não consigo imaginar o que, pois o código está escrito correto.

    Obrigada pela atenção.

    Eliete

    Responder
  • Franklin comentou em

    Bom dia ricardo, excelente sua iniciativa de postas estse cursos, vou fazer a assinatura premium o mais breve possível. eu estou acompanhando as aulas do Painel de administração com PHP + OOP - Aula 04, e estão ocorrendo eros constantes, tais como a pagina de erro: ..index.php?erro=1 ocorre o seguinte erro: Notice: Undefined index: erro in E:xampphtdocspaineladmmodulosusuarios.php on line 55 quando coloquei

    $erro = @$_GET['erro'];

    foi resolvido, mas quanto ao erro no autoload

    require_once($pathlocal."/{$classe}.class.php"); Notice: Undefined variable: pathlocal in E:xampphtdocspaineladmclassesautoload.php on line 6
    Call Stack

    não consegui resolver, alem de ter o problema do jquery que não funciona.. o que pode ser? Obrigado pelas dicas.

    Responder
    • Franklin comentou em

      os erros

      $erro = @$_GET['erro'];

      ocorrem quando não há nada no endereço, nem ?erro=1 ou 2 ou 3.. com eles ocorrem sempre.

      Responder
  • Nessa aula eu coloquei os itens(chamada javascript) de validação do campos do arquivo de 'usuarios.php' em 'geral.js', para evita poluição no código do 'usuarios.php'.

    Funcionou perfeitamente!

    E como tinha um chamada de javascript de radius5 no arquivo 'geral.js' eu fiz o comentário em cada chamada javascript um para futuramente saber o que é.

    Responder
    • Entendo sua questão sobre a "poluição do código", mas vamos analisar um detalhe: o arquivo geral.js é carregado em todas as páginas do sistema, logo mesmo não sendo necessário os js estão sendo carregados. Em localhost e com poucas páginas no sistem isso não influencia no desempenho, mas quando forem adicionados vários módulos e o sistema for hospedado na web pode deixar o sistema um pouco mais lento.
      O fato de eu ter colocado junto no módulo é justamente para somente ser carregado na tela em que for necessário, evitando assim carregar arquivos que talvez não sejam utilizados.

      Responder
  • Diego comentou em

    Cadê a outra aula?
    Já passou dos 70 compartilhamentos e não publicou a outra aula ainda.

    Está todo mundo aguardando.

    =)

    Responder
    • Sugiro que leia novamente o post de introdução com mais atenção, principalmente a parte das perguntas sobre o curso. Consulte também a sessão de posts agendados do blog...

      Responder
  • Marcio comentou em

    Ótima aula Ricardo sua didática é excelente.
    Esperando a próxima aula.
    Obrigado mais uma vez, abraço.

    Responder
  • Jonnhy Matos comentou em

    Valeu Ricardo pela aula.
    Aguardando a próxima.
    Só espero que não aconteça mais o que aconteceu na aula 03.
    Grande abraço.

    Responder
  • marciano comentou em

    Gostei do beneficio para quem é usuários premium... Parabens pela atitude e pela video aula...

    Responder

Deixe seu comentário