Estive dando uma vasculhada no meu baú e achei um tutorial que eu havia feito algum tempo atrás, inclusive eu já havia postado em um fórum de php que era do Felipe Pena, porém infelizmente este fórum já não existe mais...
... mas enfim...
Espero que ajude em algo...
Mas adianto que é para iniciantes poderem acompanhar e fazer seu sistema de forma descomplicada.
... a partir deste pode-se melhorar muito a forma de tratar os dados... otimizando e aprendendo mais, contudo acho uma boa base para quem quer se aventurar em PHP e está começando.
Obs.: Não envolve oop, mas não deixa de ser muito interessante.
Tem Demonstração, e os arquivos em .zip para baixar lá.
TUTORIAL - CADASTRO DE USUÁRIOS com LOGIN COMPLETO
Bons estudos
Perguntas e respostas frequentes sobre este tutorial:
1- Quando tento editar meu próprio cadastro, não consigo salvar, pois o meu formulário diz que o nome já foi usado em outro cadastro.
Exemplo: se o João entrou no formulário pra alterar a data de aniversário dele, o formulário devia aceitar o João, salvar as modificações, mas está verificando também o nome João e está interpretando como se outro João estivesse tentando entrar com o mesmo nome.
resposta: Não tem muito haver haver com o TUTORIAL, seria uma otimização, adição ou algo assim, mas vou tentar passar a idéia.
Uma verificação em todos os registros menos no que está sendo editado talvez resolva o problema de estar verificando o nome do próprio cadastro.[/b]
Apenas verifique em todos IDs que sejam diferentes do ID do registro que está sendo editado.
Exemplo: Essa parte do teu código me pareceu melhor assim, mas siga a lógica que te passei, pois esse código que te passo abaixo é de ilustração:
<?php /* Baseado que se vc está logado então seus dados como id, nome etc são acessíveis, pois está gravado na session, então quando for editar poderá fazer uma verificação dos dados assim:*/ $sql_check = mysql_query("SELECT COUNT(nome) FROM cadastro WHERE nome='{$nome}' && id <> {$id}"); $uReg = mysql_fetch_array($sql_check); $nome_check = $uReg[0]; if ($nome_check > 0){ echo "já existe"; } else{ // segue os procedimentos } ?>
2- É possível cada usuário ter uma pagina diferente?
Como se fosse um painel de controle individual!
resposta: Sim, veja a seguinte lógica para este caso:
Digamos que o usuário que acabou de logar no sistema, como pode-se acompanhar no tutorial, percebe-se que ao efetuar o login é gravado algumas sessions com alguns valores do cadastro referente ao usuário que acabou de logar.
Entre estas sessions é gravado também uma para o seu id, referente à si próprio que está logado.
Uma vez tendo este id acessível via session, pode-se listar todos os dados cadastrais deste usuário referente ao ID dele e somente pra ele.
Está seria a página individual só dele.
Qualquer sistema que for agregado ao site e que deseja uma relação dos dados com um usuário ou outro, basta associar os tais dados ao id do usuário e estes dados se tornam específicos ao usuário relacionado.
3- Você vai fazer um painel admin pra este tutorial?
resposta: Tô sem tempo nenhum pra desenvolver um painel admin para este tutorial, mas fica algumas dicas básicas.
Para listar os usuários, basta selecionar do bd os campos com os dados, como id, nome, sobrenome.
... tendo o id vc faz tudo e o nome e sobrenome seria para exibição e identificação visual do usuário ao qual irá executar alguma ação/edição/exclusão.
Depois que fizer a seleção no banco de dados é html básico para exibir no painel o nome do user em formato de link.
No link enviará os dados para um arquivo que pegará os dados deste via $_GET[] e executará as ações desejadas.
Exemplo:
- João Paulo Nunes [ <a href="http://www.teusite.com.br/admin/editar_usuario.php?acao=editar&id=1">EDITAR</a> ] [ <a href="http://www.teusite.com.br/admin/deletar_usuario.php?acao=editar&id=1">DELETAR</a> ]
Quando enviar à página para executar a ação desejada, essa ação será uma instrução sql.
Exemplo: Editar vc usará UPDATE e deletar usaria DELETE, ambos em referência ao id do usuário que foi pego com $_GET[]
Para editar meus dados eu já mencionei mais acima, a diferença nessa explicação é que me permite listar todos os users e executar qualquer ação que eu queira sobre todos os cadastros.
Já recebi diversos emails e ainda recebo, a maioria das dúvidas são baseadas nessas 3 acima.
O que acontece muito são solicitações de implementações, melhorias, adições.
Para esse tipo de solicitação aviso aqui a mesma coisa que aviso nos emails.
Há três formas disso acontecer, uma que vem ocorrendo são as doações que estão rolando lá na página do tutorial, direto no site do tuto.
Essas doações irei usar para melhorias naquele site futuramente, mas todas as doações que partirem deste tópcio eu reverterei para este fórum... para melhorias aqui para prover sempre o melhor para os usuários.
Uma segunda forma seria eu fazer adições por conta nesse tutorial, estendendo as possibilidades que evidente são possíveis hehehehe, mas isso requer tempo e disposição para tanto... não é o caso a muito tempo.
A terceira forma seria vcs usuários deste fórum que usufruem deste tutorial, postarem melhorias que fizeram, debater e assim vai.
Bons estudos.