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 vamos concluir o cadastro de usuários primeiramente fazendo a verificação de login e email duplicado e também criando uma função para mostrar na tela as mensagens já configuradas anteriormente no nosso CSS.
Para finalizar vamos criar uma função que irá verificar se o usuário logado no sistema é administrador ou não, a fim de impedir que um usuário limitado consiga cadastrar um novo administrador no sistema.
Este post faz parte de uma série, confira tudo que já foi publicado sobre o mesmo assunto.
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.
Atualmente temos 44 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.
Olá Ricardo,
gostaria de saber se você pode postar algo sobre como dar somente ao administrador a opção de cadastrar novos usuários;
achei muito aberto o sistema dando abertura de cadastro para qualquer usuário.
obrigado
ResponderCabe a cada um personalizar ou implementar novas funções ao sistema, meu objetivo com o curso é dar um norte para cada um saber por onde iniciar.
ResponderRicardo, estou fazendo um esse CRUD mas usando o foundation. PAra usar o Data Table não estou conseguindo, podia dar uma dica?
ResponderErro isAdmin() função
Ocorreu um erro com os seguintes detalhes:
Arquivo: C:\xampp\htdocs\projects\seagate\classes\banco.class.php
Rotina: executaSQL
Código: 1064
Mensagem: 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
Não consigo achar o erro... aff
ResponderVocê tem um erro no seu SQL, provavelmente erro de digitação na query gerada para fazer a verificação.
ResponderMeu eu não tinha setado o dataSet... Mas achei bem estranho, pois não achei na video aula.. Só consegui arrumar batendo os arquivos. Deve ser sono... Poxa mas demorei 9 horas para descubrir hahaha. Valeu
ResponderBom dia professor,
Conforme seu aviso de ausência temporária, espero que esteja melhor. E segundo parabenizo pela paciência e clareza das aulas, mas como todo aluno têm dificuldades, seguirei com mais uma para seu post:
nas rotinas de validação de duplicidade no cadastro:
if ($user->existeRegistro('login',$_POST['login'])):
echo'Este login já cadastrado, escolha outro nome de usuário.';
$duplicado = TRUE;
endif;
if ($user->existeRegistro('email',$_POST['email'])):
echo 'Este email já cadastrado, escolha outro endereço.';
$duplicado = TRUE;
endif;
não consigo obter o cenário LIMPO conforme apresentado em sua vídeo aula ( marcação 7:57) portanto passei hoje o dia inteiro agarrado lendo e relendo suas aulas anteriores inclusive o CRUD e não consegui identificar o por quê? Segue abaixo como é apresentado em meu alfarrábio.
P.S.:
O cadastro está funcionando perfeitamente. e gostaria de saber o porque a mensagem de erro vem neste idioma [ Mensagem: Erreur de syntaxe près de ' ]?
=================================================================================
Este login já cadastrado, escolha outro nome de usuário.Ocorreu um erro com os seguintes detalhes:
Arquivo: C:\wamp\www\projetos\paineladm\classes\banco.class.php
Rotina: executaSQL
Codigo: 1064
Mensagem: Erreur de syntaxe près de ' , , , FROM paineladm_usuarios WHERE email='aluisa@site.com'' à la ligne 1
Informe os dados para cadastro
=============================================================================================
desde já te agradeço,
atc,
Marcos Fernando
Você tem um erro de SQL, ou seja, sua query está com algum erro de sintaxe.
ResponderMuito obrigado,
achei!!! era um erro de dedo na digitação.
desde já, te agradeço e vou para a aula que é a 10 agora.
MarcosF
ResponderOlá Ricardo, tudo bem?
Precisei criar um combobox dinâmico para preencher estadocidades. Quando clico em estado, o segundo combobox é preenchido com as cidades. Fiz isto via Jquery. Acontece que para montar o segundo combobox(cidades) tive que criar um arquivo php (que carrego via jquery) para selecionar as cidades no DB e devolver o resultado. Criei este arquivo php na pasta raiz do projeto. O problema que gostaria de resolver é:
- Dentro deste arquivo php não consegui utilizar(carregar) os objetos de conexão criado no curso, nem as classes, nem seu métodos. Tive que fazer a conexão e buscas no DB utilizando funçoes do php.
Pergunto: Como faço para, ao crir um novo arquivo php, conseguir utilizar as classes e os metodos (selecionarTudo por exemplo) ? Será que devo, na verdade, em vez de criar um arquivo php para ser chamado no jquery, devo na verdade criar um função na classe da tabela correspondente a cidade e chamar esta função no jquery (não encontrei nenhum exemplo de como fazer desta forma) ?
Obrigado e boas festas.
ResponderTudo deve girar em torno das classes do sistema, se precisar de algum procedimento extra, então ele deverá estar dentro de alguma classe para que haja a ligação entre tudo que é necessário.
ResponderOlá Ricardo!
Primeiro quero agradecer suas excelentes videoaulas! PARABÉNS!
Eu estou com esse problema abaixo, saberia dizer porque ocorre?é o unico problema que esta dando ate agora.
( ! ) Fatal error: Call to undefined function loadmodulo() in C:\wamp\www\paineladm\painel.php on line 8
Call Stack
# Time Memory Function Location
1 0.0010 143920 {main}( ) ..\painel.php:0
Dá uma lida neste artigo: http://dev.rbtech.info/entendendo-e-interpretando-erros-em-scripts-php/
ResponderBoa noite!
Em primeiro lugar eu gostaria de parabenizá-lo pelo ótimo trabalho desenvolvido nesse painel.
Estou tentando fazer umas modificações e precisaria de uma ajudinha. Será q vc pode me ajudar?
Atenciosamente
Carlos
Alterações e implementações extras ficam a cargo de cada um que quiser usar o sistema.
ResponderOlá Ricardo,
Primeiramente meus parabéns por excelentes vídeo aulas.
Continue assim, essa é minha segunda vez que estou assistindo a criação deste projeto.
Agora vem a bronca, estou com um problema:
Warning: mysql_close(): 12 is not a valid MySQL-Link resource in C:\wamp\www\painelAdm\classes\banco.class.php on line 27
Você pode me explicar o que está acontecendo? Pois já tentei e muito.
Valeu!!
Uma conexão inexistente está sendo fechada, verifique se a conexão com o BD já não foi fechada e verifique sua classe "banco" buscando possíveis divergências nela.
ResponderMuito obrigado pela resposta, Ricardo.
Fui verificar isto no manual: "Usar mysql_close() não é normalmente necessário, já que as conexões não persistentes são automaticamente fechadas ao final da execução do script."
O que você acha?
--------
Sei que está executando o close na mesma conexão várias vezes, mas não consegui encontrar a solução, também sei que foi depois que criei a função isAdmim() e a existeRegistro()... Daí só fiz colocar NULL na variável $conexao (método __destruct()).
Obs: Este erro só acontece quando eu clico em cadastrar!
--------
Outra pergunta: Passar valores pelo $_GET é normal/seguro? ID, modulos, telas e etc.
Sou um pouco novo no PHP, então ignora se estou fazendo alguma pergunta besta. Abraços!
--------
Trabalho e estudo, mas estou indo dormir super tarde por conta de tuas aulas, viciantes... Meus parabéns novamente.
Indiferente de como os valores são passados não existe sistema 100% seguro. O ideal é sempre fazer o tratamento dos dados recebidos.
ResponderObrigado, Ricardo.
Perguntei pois você tem muito mais vivência do que eu na área de web.
Fico grato por seus retornos...
helo. estou vi um campo de cadastro e login.
gostaria de saber, o porke de me cadastrar? apesar de ja ter tentado e nao ter sido possivel.
alexandre.de mocambique
ResponderTemos um sistema de conteúdo premium para assinantes, veja o menu ASSINATURA no topo do site.
ResponderParabéns pelas aulas.
Estava me perguntando: onde estão as funções inserir, atualizar e deletar. Não as vejo na classe Usuários.
ResponderBom, como respondi a você ricardo no email, eu estou sem saídas pois reescrevi o código e não resolveu, tentei utilizar de outros métodos para encontrar o erro e também não obtive sucesso.
Eu até estava pensando em pagar para poder obter o download desse arquivo no final da vídeo aula mas eu não quero o conteúdo da vídeo aula pronta, eu estou acompanhando e assistindo a um bom tempo, cheguei a assistir 5 aulas em 1 dia até não aguentar e ter que descansar, re-assisti as aulas diversas vezes, hoje eu fui tentar pela ultima vez encontrar o problema e seguir com as VA's, mas percebi iria ficar estressado depois de 3 horas mudando o código, então preferi recorrer a você pela ultima vez, como mencionei no email, eu tive diversos erros durante a VA mas eu consegui arrumar com alguns dias de pesquisa e revendo o código diversas vezes, porém eu já estou ficando louco com esse erro, entenda, se estou vindo pedir diretamente a você, é porque não tenho mais alternativas.
Você é desenvolvedor e não deve ter escolhido essa área para trabalhar por "ganhar bem", mas como eu escolhi e muitos outras pessoas pelo mundo escolheram, escolhemos porque amamos programar, amamos escrever cada linha de código, aprender coisas novas e ter a ansiedade de testa-las o quanto antes.
Eu te peço pela ultima vez, não vou tornar a incomoda-lo quanto a isso, já não suporto mais querer continuar as aulas, aprender métodos que até então não conhecia e não poder por estar com essa barreira na minha frente.
Eu gostaria que me desse meia hora do seu tempo para ver o conteúdo todo que eu tenho e por favor me dizer aonde eu errei:
Obrigado, não vou tornar a tocar nesse assunto.
ResponderOs comentários que você deixou no post continham código fonte que prejudicava a exibição do blog, por isso foram deletados conforme prega nossa política de comentários.
Reforço aqui que não posso pegar o código fonte de UM leitor e analisar linha a linha para descobrir um erro, se eu fizer isso para um, deve ser igual para todos, o que é totalmente impossível.
Entendo, peço desculpas, obrigado pelo seu tempo, que Deus te abençoe.
ResponderRicardo eu comprei o post, mas não veio com os arquivos sql, eu tenho dificuldades com BD e gostria de saber se você poderia me enviar para meu e-mail
desde já agradeço e um forte abç.
A criação da tabela é explicada na primeira aula do curso, basta seguir os passos indicados na aula.
ResponderNão estou encontrando o método selecionaCampo que está sendo chamado no método isAdmin... já olhei todas as vídeo aulas duas vezes e nada :(
alguém pode me passar esse método informando em que classe ela ta ou entao dizer em que vídeo que esse método é feito?=)
ops! nao é selecionaCampo e sim selecionaTudo, no meu caso findAll =)
ResponderEssa função foi criada no CRUD, que é requisito para este curso.
ResponderOlÁ Ricardo desconsidere minhas mensagens acima, apenas meu campo esta dando um seguinte erro, quando eu acesso como usuário limitado e entro no campo do formulário ainda consigo ativar o checkbox de adm quero dizer que consigo ativar mesmo como usuário limitado poderia me dar um dica e obrigado novamente...
ResponderMais um detalhe Ricardo no checked eu conferi varias vezes os codigos de isAdmin mas esta dando este erro e some os botoes de salvar dados e cancelar estes são os erros
Warning: require_once (/ sessão.class.php): failed to open stream: Arquivo ou diretório em C: wamp www Aulas php paineladm classes autoload.php na linha 6
Chamada de pilha
# Tempo Memória Função Localização
1 0,0019 142048 {Main} () .. Painel.php : 0
2 0,0094 177856 loadmodulo () .. Painel.php : 9
3 0,0111 197384 include_once ( 'C: wamp www Aulas php paineladm modulos usuarios.php' ) .. Funcoes.php : 45
4 0,0115 197680 IsAdmin () .. Usuarios.php : 138
5 0,0116 197864 __autoload () .. Usuarios.php : 99
O segundo erro
erro fatal: require_once (): Falha de abertura necessária '/ sessão.class.php' (include_path = '; C: php. pear') em C: wamp www Aulas php classes paineladm autoload.php na linha 6
Chamada de pilha
# Tempo Memória Função Localização
1 0,0019 142048 {Main} () .. Painel.php : 0
2 0,0094 177856 loadmodulo () .. Painel.php : 9
3 0,0111 197384 include_once ( 'C: wamp www Aulas php paineladm modulos usuarios.php' ) .. Funcoes.php : 45
4 0,0115 197680 IsAdmin () .. Usuarios.php : 138
5 0,0116 197864 __autoload () .. Usuarios.php : 99
Endereços (URLs) de sistemas web NUNCA podem ter: acentuação, espaços vazios, letras maiúsculas ou caracteres especiais.
ResponderOlá Ricardo a unica coisa que esta acontecendo comigo é quando eu repito o email além de apareçer aquela mensagem de erro tratada feita por vc na video aula apareçe tbm aquele erro de sql que aconteçeu com vc no final da video aula 08 ja revisei todos os códigos e não achei nada poderia me dar uma dica fico grato...
ResponderObrigado pelas videos aulas ta nota 10!
Estou com os seguintes problemas:
eu fiz tudo certinho mais na hora desativar o checkbox como usuario normal ainda fica ativo oq pode ser eu revisei tudo e nada =/
Aguardo resposta.
obg.
Responderola ricardo estou com um problema quando eu chamo a is admin
e vou acessar ele meu redimencion para pagina index tentou erro na session mais
código fonte excluído pois não foi postado conforme regras
por causa do verifialogin(),
interessante e que não é por a session esta vazio senão quando entrasse no painel tambem retornaria para pagina index.
sera que pode me ajudar?
Suas video aulas são ótimas, que Deus te abençõe e que vc tenha muito sucesso em sua vida, obrigado.
ResponderParabéns pelas vídeo-aulas e também pelo Blog.
Acompanho desde o fim do ano passado e já tive motivos suficientes para adquirir a assinatura premium! Ainda essa semana o farei. Parabéns!
Olá Ricardo!
Primeiro quero agradecer suas excelentes videoaulas! PARABÉNS!
Eu tenho uma dúvida, digamos que eu tenha muitos registros no banco de dados. Quando eu buscar, primeiro o Jquery data-table vai ler todos e depois páginar? Isso não pode dar bug no sistema?
ResponderNo data table sempre são adicionados todos os dados, e os mesmos são tratados internamente.
ResponderRicardo, essa vídeo aula foi muito massa, você é meu ídolo.
ResponderOlá, com toda humildade quero pedir que se for possivel, quando este video alcaçar 70 shares, que creio que será rapido, se possível, que seja divulgado o link do 10 e 11, só pra não perder o pique que esta o curso, desde já agradeço e dou meus parabêns pelas video aulas.
Obrigado.
Responder© 2008-2024 - RBTech.info | Todos os direitos reservados | Hospedado por Innova Host
É proibida a reprodução total ou parcial de qualquer conteúdo deste site.
Olá, bom dia!
Ricardo, gostaria de saber o que houve com este erro. Fiz todos os passo a passo na vídeo aula, exatamente igual, refiz por diversas vezes. Acontece que como estou acompanhando este curso apenas em 2015, obviamente estou tendo problemas com a conexão mysql de sintaxe, que no caso exige outra sintaxe de conexão. Porém, quando o mesmo está correto nos códigos, tem funcionado normalmente. Quando dá um erro no programa, aparece o erro e o erro de sintaxe - uma vez corrigido, some tudo e o Sistema volta a funcionar corretamente. Está rodando 99,9% dessa forma, porém, me apareceu um problema nesta vídeo aula. Quando faço toda a parada para o usuário normal não poder cadastrar como administrador, ele aparece erro de sintaxe do Banco Mysql e logo abaixo aparece assim: /> Controle total ao sistema.. gostaria de saber o que houve, pois já revi todos os códigos e vídeo aula. Acredito que seja falta de alguma tag, porém, fiz exatamente como está no vídeo. Tirando a parte que organizo da seguinte forma:
blablabla
Controle total ao Sistema