Como criar um sistema de autenticação de usuários usando PHP/MySQL

Nesse artigo ilustrarei de uma maneira simples como se desenvolver um sistema de autenticação em PHP usando sessões MySQL. A simplicidade é tamanha que mais uma vez mostra-se o poder do PHP.

[ Hits: 120.872 ]

Por: Luís Fred em 04/10/2006


Introdução



   

Dentre as inúmeras linguagens de desenvolvimento para web que existem por aí, não há a mínima dúvida de que o PHP reina entre elas. Uma linguagem simples e ao mesmo tempo tão poderosa, usada em todo o mundo, com capacidade para manipular uma vasta gama de banco de dados, entre os quais se destacam os três mais usados:
  • MySQL
  • PostgreSQL
  • Oracle

Neste artigo, usarei como base o MySQL, por já ser bastante funcional e mais comumente usado com o PHP. Este artigo não ensina como desenvolver um sistema de autenticação seguro, apenas ilustra como funciona, na base, um sistema mais eficiente, desses usados em sites de médio porte.

Bom, mãos à obra então.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Iniciando com os comandos SQL
   3. Script para conexão com o banco de dados
   4. Script de autenticação
   5. Script que vai fazer o logout
   6. Página inicial
Outros artigos deste autor

Criando uma agenda eletrônica com PHP/MySQL

Upload de imagens com criação de thumbnails em PHP

Leitura recomendada

PDO - Introdução e conceitos

VirtualBox + Apache + PHP + SQL Server

Servidor Web com Fedora Core 7

Executando comandos DML em base de dados MySQL através do Eclipse PHP (Bônus: Temas e Fontes no Eclipse)

PHP com PostgreSQL - Estruturando a conexão

  
Comentários
[1] Comentário enviado por removido em 04/10/2006 - 09:06h

muito bom! continue postando mais artigos sobre o assunto

[2] Comentário enviado por Bolche em 04/10/2006 - 09:51h

Seria interessante se você escapasse a senha e o nome de usuário com mysql_real_escape() pois caso contrário, em alguns servidores haveria brecha para fazer um SQL injection.

[3] Comentário enviado por balani em 04/10/2006 - 11:12h

Muito bom o artigo

[4] Comentário enviado por atonemheb em 05/10/2006 - 16:38h

gostei muito! Vou esperar teus proximos artigos ainda seguindo este assunto. Parabens!

[5] Comentário enviado por rodrigo.dfreitas em 05/10/2006 - 17:04h

Bom artigo, eu só acrescentaria duas coisas, primeiro um tratamento nos dados recebidos de login e senha, algo como sugerido acima e segundo na hora da conexao você poderia usar o pconnect no lugar do connect, assim o php manteria apenas uma conexao pra todas as sessoes abertas tornando muito mais facil a vida do mysql.

No mais parabens pelo artigo

Abraço

Rodrigo

[6] Comentário enviado por patrickbrandao em 08/10/2006 - 11:22h

Huahau! Seu sistema de login é moleza de hackear,

se usar login e senha:

' or '1'='1

Vai passar!
Faça assim: substitua as aspas simples por \' no texto digitado pelo usuário.

A tecnica acima se chama "sql injection", tome nota em todos os sistemas que tenha usado isso. Eu ja entrei em milhas de www.algumacoisa.com.br/admin/ com essa tecnica.

[7] Comentário enviado por demattos em 08/10/2006 - 17:51h

Muito bom este artigo estava procurando isto
Valeu

[8] Comentário enviado por rootuser em 09/10/2006 - 22:22h

Muito bom seu artigo gosto muito de PHP.... Continue postando mais sobre o assunto .... t+

[9] Comentário enviado por agk em 24/10/2006 - 17:04h

Bom o artigo, dá pra ter uma noção, pra quem nunca fez nada em php+mysql consegue aprender alguma coisa.
Quanto a segurança o autor cita que não está levando isso em consideração no artigo, tudo bem podemos até deixar isso de lado em um primeiro instante, mas assim que for possível é bom aprender um pouco sobre tratamento de variáveis.

Não entendi porque foi criado a tabela distro, se foi meramente por criar, já que ela não está associada ao usuário, então o resultado será sempre o primeiro da tabela, no caso slackware.
É isso, [ ]'s.

[10] Comentário enviado por lavoie em 27/12/2006 - 11:39h

bem, nao entendo quase nada, para nao dizer nada de php e mysql, mas se alguem puder me ajudar com alguma dica para começar,
queria montar um sistema:
1º Cadastro de usuario de internet.
2º Os usuarios pudessem alterar os proprios dados acessando o servidor pelo navegador dentro da rede.
Tenho servidor linux, rodando, apache2 , mysql, php5, phpmyadmin

[11] Comentário enviado por fabiapricelog em 02/05/2007 - 20:34h

Obrigadaaaaa
Vc me ajudou muito!!!!
Bjim

[12] Comentário enviado por pauloindio em 04/12/2007 - 12:12h

amigo que terminal e este?
onde abro este terminal?
vlw2 um abraço

[13] Comentário enviado por morphors em 26/10/2008 - 22:53h

parabéns!!!

obrigado pelo ótimo post

[14] Comentário enviado por comfaa em 28/10/2008 - 13:02h

muito legal !!!

[15] Comentário enviado por halisonsc em 15/01/2009 - 14:34h

muito bom este artigo.

[16] Comentário enviado por removido em 05/02/2009 - 12:20h

Ow amigo realmente muito bom esse topico ... só que estou precisando da sua ajuda, implemente esse esquema de autenticação ao meu site... Funcionou que uma blz ... só que agora estou precisando de um esquema para ele registrar os usuarios ao banco mysql... Se possivel me ajudar ficaria muito Grato ....


Vlw aee !=D

[17] Comentário enviado por rborges em 29/10/2009 - 15:47h

alguem sabe como fazer que somente determinado usuario entre na página?

[18] Comentário enviado por solusweb em 10/02/2010 - 09:05h

Ótimo artigo.Parabéns.
http://www.solusweb.com.br/blog

[19] Comentário enviado por albert cruz em 22/02/2010 - 11:45h

Luis, sei que seu post eh antigo mas estou estudando isso agora, fiz tudo que vc mandou mas nao consigo sucesso, nao conecto no banco de dados, me tire algumas duvidas. No conecta.php, quais dados devo preencher as variaveis, o login e senha sera do acesso ao mysql ou dos nome ficticios que criei a base de dados?
grato

[20] Comentário enviado por removido em 24/12/2010 - 15:53h

Simples e objetivo. Parabéns!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts