Olá! Saturday, 20 de April de 2024.



Dicas CódigoFonte.net
Friday, 16 de July de 2004

Sistema de login e senha com BD

Olá!!!!
Vou ensinar como fazer um sistema de login!
Bem, vamos primeiro ver tudo o que será passado nesse tutorial:
- vamos criar uma página de cadastro dos usuários;
- outra página para o login;
- gravar o login e senha em um cookie;
- outra página para recuperação de senha;
- aplicar a restrição nas páginas;

Vamos começar???
1ºpasso - Vamos criar uma tabela no MySQL:

Explicando:

CREATE TABLE `tbl_membros` - criamos a tabela com o nome tbl_membros
Tudo que vem entre os ( ) é os campos;
Código - INT (somente números) com limite para 5 caracteres, acho que até 99999 usuários está bom né? E o NOT NULL para que ela não fique em branco, AUTO_INCREMENT é para ela automaticamente numerar (1,2,3,4,...)
Nome - VARCHAR (Alpha númerico, letras, números e caracteres especiais) com 75 caracteres no máximo, ...


2ºpasso - Agora que temos a tabela criada, vamo para a página de cadastro dos usuários. Vamos fazer um formulário com os seguintes campo: Nome, Login, Senha, Repetir Senha e o Email, lembrando que o usuário não digita o campo código, ele é automaticamente inserido no MySQL.

cadastrar.php

Nome:
Login:
Senha:
Repetir Senha:
Email:
   



Um simples formulário, nada de códigos, nada de scripts, aqui, muitos programadores gostam de enviar o formulário para a mesma página, e fazer vários IF, eu prefiro enviar o formulário para outra página que irá inserir os dados no MySQL (enviar_cadastro.php). Até essa parte acredito que não tenha nenhuma dúvida no ar, então, vamos para a página que irá introduzir esses usuários no banco de dados.

Mas primeiro, iremos fazer uma página php somente com as configurações do acesso ao banco de dados, pois iremos utiliza-lo várias vezes, e caso erremos em um ponto, teremos que conferir em todas as páginas, essa parte ajudaria como um include de menus.


3ºpasso - Essa página não precisa ter nenhum código html, ou seja, crie uma página nova e apague todo o código fonte, iremos somente colocar umas váriaveis php nele, aqui segue o código da página:


config.php



Com essa nossa página de Configurações pronta, salve-a com o nome de config.php e agora vamos para a parte de inserir os usuários:


enviar_cadastro.php
Cadastro com sucesso.
"; //se cadastrou com sucesso o usuário aparece essa mensagem } else { echo "
Ocorreu um erro no servidor ao tentar se cadastrar.
"; //caso houver um erro quanto as configurações aparece essa mensagem } } else { echo "
Ocorreu os seguintes erros ao tentar se cadastrar:$errors
"; //mostra os erros do usuário, caso houver } ?>


Esse é nosso código para cadastrar os usuários no banco de dados, parece meio complicado ao olhar assim, mas tem comentários ao lado de cada ação, o bom é você tentar entender esse código, não copia-lo e colar no seu, digamos que essa é a base dos sistemas de login.

4ºpasso - Página de Login

Vamos fazer da mesma maneira do cadastro, uma página com um formulário simples, que envia para uma página os dados digitados.

login.php
Login:
Senha:
   
Esqueceu a senha? Cadastre-se



Agora criaremos a página que irá verificar se a senha digitada é correta ou não. Outra coisa, essa página também não deve conter códigos html, pelo fato de ser criados cookies, você deve deletar todo o conteúdo da página antes de fazer esse código

confirmar_login.php
Clique aqui para voltar."; //se a senha está incorreta mostra essa mensagem } ?>


Como o cadastro, poderá parecer meio confusa essa página, mas também aconselho que não copie o código, analise e faça você mesmo, com essas página já teriamos um sistema de login, mas queremos mais, caso nossos usuário não se lembrem da senha, não quero ele me incomodando no icq , então faremos uma página para que envie a senha no email cadastrado. E outra vez estaremos fazendo um formulário simples antes, e será enviado para outra página.

senha.php
Login:
Email:
   




Agora com os campos Login e Email, podemos conferir no banco de dados e enviar a senha para o email cadastrado:

enviar_senha.php
Sua senha foi enviada com sucesso para o email: $email.
"; //resposta se o email foi enviado com sucesso } else { echo "
Seu login ou email está incorreto.
"; //resposta se não foi possivel enviar o email } ?>



Tenho que comentar novamente? Acho que sim né, pra gravar bem, é melhor você entender esse script ao invés de copia-lo. Temos pronto nosso sistema já, o que nos resta é? é? é? Restringir o acesso a algumas páginas, bem, vamos fazer uma página com os scripts, e mesmo assim, temos que editar as páginas que queremos que fiquem "trancadas". Também podemos fazer sem edita-las, mas ficaria um sistema bem menos seguro. Vamos agora criar a página com a restrição:


acesso.php




Essa página "acesso.php" também não pode conter códigos html, agora iremos ver como colocar essa restrição de acesso nas páginas, veja um exemplo:

5ºpasso - Teste!
Temos uma página somente com o texto "OI!" centralizado, esse é o código:

teste.php
Teste de Acesso
OI!

O que temos que fazer é, Adicionar um IF no começo dessa página e um ELSE no final, caso não esteja logado, ficando assim:

teste.php
Teste de Acesso
OI!




Caso deseje fazer um botão para Logout, crie a página logout.php, com as seguintes ações:


logout.php


E para efetuar o Logout, você somente precisa colocar um link em suas página para essa pagina

Bem, creio que acabamos (se não esqueci nenhuma parte), espero ter ajudado quem passava por dificuldades com esse tipo de sistema, e que com base nele pode ser aplicado bem mais coisas, como por exemplo, criptografar os cookies de senha, para ter uma melhor segurança para seus usuários.

Comentários do artigo [Novo comentário]

Tiago Agra - 14 de November de 2008 - 12:44
Amigão, excelênte artigo.
Consegui fazer tudo, só estou com problema na pagina de teste, não consigo acessa-la mesmo logado. O que ocorre?
Renner Silva Souza - 25 de January de 2009 - 11:50
amigo,oq devo fazer??o sistema é ótimo,mais as paginas de enviar_senha.php e a confirmar_login.php
estão dando erro...para nelas...
hugo dantas da silva - 28 de January de 2009 - 21:09
Olá, Boa noite.
seu Tutorial é excelente muito bom mesmo.
Só que esta dando algum tipo de erro, assim não e bem um erro que é um erro.
hehehe

Assim eu fiz tudinho comforme você explicou aqui, esta tudo revisado, agora. Eu vou lá cadastrar.php
me cadastro aperto em enviar cadastro mais não me retorna nada, ex: pronto você esta pronto para si logar etc..
entende
a mesma coisa acontece nas outras paginas, a eu estou colocando os dados confome pedido la e ele nao esta enviando para o banco.
o que sera isso amigo, me ajude com isso por favor.
seu tutorial e um maximo, mais pena que nao esteja saindo legal com migo.
agradeço
Marcos Vinicius - 26 de May de 2009 - 13:06
Olá Milton!
Gostei muito desse seu tuto, mas gostaria de saber se tem como criar uma página que seja individual para cada usuário, pois trabalho com arte final e gostaria de colocar uma página para que meus clientes pudessem ver as amostras de seus serviços, enviar arquivos e etc.
PS. Você está de parabéns.
Robson Duarte - 15 de September de 2009 - 09:44

(Tiago Agra - 14 de Novembro de 2008 - 12:44
Amigão, excelênte artigo. Consegui fazer tudo, só estou com problema na pagina de teste, não consigo acessa-la mesmo logado. O que ocorre?)

To com o mesmo problema!
tom.sampa21 - 25 de September de 2009 - 12:56
e aew veio...
eu tenho conhecimento em html mas so bem novato em php ainda...
e nao to conseguindo fazer o formulario funcionar.
eu ja inseri todos os codigos, alterei os codigos de configuração com os meus dados corretos.
mas qdo vc entra em cadastro, insere todos os dados e clica em enviar, ele diz que vc nao pos nada nos campos usuario e senha...
o q eu faço??? ja estudei o cod ao max q pude e ainda to perdido...

obrigado desde ja
Deise M. S. - 17 de November de 2009 - 10:35
Olá!
O seu artigo é de mto fácil compreensão e eu gostei mto. Só estou com problemas na página de enviar_cadastro. Já alterei os nomes da base de dados, da tabela, etc, mas continua não funcionando. Será q vc poderia me ajudar? Obrigada!
Gabriel Henrique - 24 de November de 2009 - 15:37
Cara como eu posso saber qual é meu endereço de servidor do mysql?

è que qndo eu vo criar clico em criar ele da uns erros esses:

Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'https' (1) in /home/t97618/public_html/enviar_cadastro.php on line 4

Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 't97618'@'localhost' (using password: NO) in /home/t97618/public_html/enviar_cadastro.php on line 5

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/t97618/public_html/enviar_cadastro.php on line 5

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/t97618/public_html/enviar_cadastro.php on line 7

Alguem aí me ajuda?
Gabriel Henrique - 24 de November de 2009 - 15:58
Acho q este problema eu consegui resolver + daí Aparece isso:

Ocorreu os seguintes erros ao tentar se cadastrar:Você não digitou um loginVocê não digitou uma senha

E EU ja tentei fazer o cadastro inumeras vezes
Vitor Luis - 20 de December de 2009 - 17:05
eu precisei criar um sistema de login para admin de um site, ai achei esse sistema só que mesmo logado eu não consigo acessar a pagina "teste.php" como resolver?!
Guilherme - 01 de January de 2010 - 21:50
o problema da "enviar_cadastro.php" é adicionar as váriaveis, e estou passando elas:

coloque depois do "<?" :

$nome = $_POST["nome"];
$login = $_POST["login"];
$email = $_POST["email"];
$senha = $_POST["senha"];
$senha2 = $_POST["senha2"];
Guilherme - 01 de January de 2010 - 21:52
a "configurar_login.php" e "enviar_senha.php" também tem que colocar as variaveis
alexandre gouvea - 17 de January de 2010 - 03:26
fiz tudo certo, criei uma tabela no banco de dados do my SQL mas não deu certo nada!

por exemplo quando eu entro na pagina de cadastro ta tudo certinho pra colocar os dados do novo usuario e enviar, mas quando clica em enviar aparece a pagina HTTP 404 a mesma coisa acontece com a pagina de login as demais paginas feitas eu coloquei elas em stand alone para q elas não aprececem no menu do site mas todas existem!

clica no link do meu site pra vc ver e faça vc mesmo o teste www.alexgouvea.com.br

e eu nem sei mais o que fazer faço tudo certinho e acontece isso!

ME AJUDA SE FOR POSSIVEL!!!
alexandre gouvea - 17 de January de 2010 - 03:29
ME MANDA SUA AJUDA SE POSSIVEL PELO MEU E-MAIL [email protected] OU PELO MSN Q É O PROPRIO E-MAIL SÓ ME ADD!
Vitor - 20 de March de 2010 - 20:30
Como faço para aparecer o nome do usuario na tela
Allan Jones Rodrigues - 16 de April de 2010 - 23:34
Cara deve ter algum problema com a variavel CONTAGEM, pois no teste ela não está indo para 1.
Allan Jones Rodrigues - 16 de April de 2010 - 23:47
Acho q consegui resolver o problema do teste.php
Coloquem isto no teste.php
<?php include 'acesso.php';
//antes de
if ( $contagem == 1 ) {
//aqui deixe aberto, pois iremos fechar somente no final da página
?>
wanderson - 03 de June de 2010 - 21:06
Olá pessoal.
Usei esse código para criar o login conectando a um BD, porem está apresentando erros. Fiz toas as alteraçoes que os demais informaram , mais continua dando erro. Criei o banco em Mysql e os dados que tento enviar em cadastro.php não envia para o banco. instalei o apache do wamp e o erro continua, nada é enviado para o banco.
Ja faz algum tempo que trabalhava com php e na época funcionava tudo corretamente. Gostaria de saber se podem me ajudar.
Obrigado pela atenção de todos.
Lucas Vinicius de Abreu - 05 de June de 2010 - 23:36
Pra mim sempre ocorre o mesmo erro nesta linha
$contagem = mysql_num_rows($pesquisar);
meu e-mail eh jtnfdp@hotmail
sou noob em php, se alguem puder me ajudar eu agradeço
Vitor - 29 de June de 2010 - 18:00
Queria saber como eu coloco o nome do usuário no tela. Assim o usuário pode ver seu nick.
Nilson Araujo - 31 de October de 2010 - 17:10
Uso php5 ja fiz as mudan? para pegar os dados mas o acesso.php continua retirando contagem = a 0.
Hélcio Vitor - 17 de January de 2011 - 17:51
Olá,
Excelente código :)
Vc que vai usar este script, deve considerar mudar o nome do cookie para evitar conflitos. Pode usar, por exemplo, seusitelogin e seusitesenha, mas não esqueça de mudar os nomes tbm na página logout.php, se não o usuário não poderá sair.

Vou tentar postar a solução para alguns problemas que o pessoal teve daqui a pouco, agora vou tomar café com pão de queijo, já que sou mineiro.
José Antonio Pasterick - 25 de January de 2011 - 13:57
Primeiramente obrigado pelo tutorial, excelente! Mas realmente enfrentamos alguns errinhos que com a ajuda de um ou de outro foram solucionadas. Tem mais um! Quando inseri o login e o e-mail para receber a senha, aparece a mensagem de envio para o e-mail cadastrado, MAS O E-MAIL NÃO É ENVIADO!
Agradeço se alguém desvendar o mistério.
Um forte abraço a todos.
Tailor Confeccoes - 16 de March de 2011 - 12:27
Tenho uma dúvida. Meu site está em java e abrem todos os links em uma mesma pagina, mas esse sistema abre em paginas diferentes com fundo em branco.

PERGUNTA: Como faço para abrir as páginas no mesmo fundo, mesmas características do index, até que faça o login e entre na pagina logada.
Emerson h - 20 de March de 2011 - 22:47
visite o nosso site:
www.códigos.tk
tem tdos tipos de códigos para melhorar o seu site.Já foram testado e aprovado !!!
Rui Valente !!! - 06 de June de 2011 - 13:37
oi, eu logo-me e aparece que fico logado mas depois quando vou a teste.php aparece que o usuario nao esta logado, alguem me ajuda? fico a espera de resposta
Rui Valente !!! - 06 de June de 2011 - 13:39
edit:

visitem:

http://multivvws.net63.net/testes

e cadastrem-se e depois logam vao a teste2.php e vêm o erro
Rui Valente !!! - 06 de June de 2011 - 13:41
outro edit:

id: visitante3000

pass: visitante2000
Rui Valente !!! - 16 de June de 2011 - 18:21
esquecam
flavio - 13 de July de 2011 - 20:42
HTTP_COOKIE_VARS
na hora de logar o servidor não reconhece os cookies ou
flavio - 13 de July de 2011 - 20:44
if ( $errors == "" ) {
quando essa condição é verdadeira sempre da um erro, embore funcione direitinho uso php5
jonathan - 18 de September de 2011 - 01:46
Gostaria de tirar duvida muito grande com vc se possivel.

Pretendo criar e-comerce ou sistema vendas, precisa criar modelagem do banco de dados certo. Ai vem a duvida grande ..como posso explicar.

Vc pretende adquirir sistema, vc loga no sistema faz cadastro dos produtos mas o id é chave primaria sendo que os numeros não podem se repetir, nesse caso registrou id 1,2,3.

Vai amigo adquiri o mesmo sistema faz login e tenta cadastra os produtos, mas como irá cadastrar se o id é chave primaria ou como ele vai utilizar o id 1?.


Valeu.
Abraços.
cleomar - 12 de August de 2012 - 11:39
ola pessoal, so programador web, caso vcs precisam de umm sistem,a de login mais avançado,entre em contato comigo, [email protected]
Aderson Teixeira - 19 de January de 2015 - 13:59
Olá Milton estou com esse erro:
Warning: mysql_num_rows() expects parameter 1 to be resource, string given in /home/aderson1/public_html/v04/Sistema_de_Login/enviar_cadastro.php on line 8
Ocorreu os seguintes erros ao tentar se cadastrar: Você não digitou um loginVocê não digitou uma senha
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:


CodigoFonte.net » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010