Criando um sistema de cadastro e login com PHP e MySQL

Neste artigo vamos aprender a criar um sistema de cadastro e login bem simples, utilizando PHP e MySQL. Vamos ver também alguns conceitos de criptografia md5 e cookies.

Olá, hoje vamos aprender como criar um simples sistema de cadastro e login utilizando PHP e MySQL.

Lembrando que você deverá ter instalado na sua máquina o MySQL e ter um servidor local com suporte a PHP para poder testar o sistema. (Eu utilizei o MySQL Workbench 5.2 CE + IIS (Com o PHP 5)).

Criando a tabela "usuarios"

A primeira coisa a ser feita é criar a sua tabela no banco de dados, aqui nós utilizaremos apenas 3 campos (você poderá utilizar quantos campos quiser, desde que , respeite alguma regras que serão explicadas).

Vamos ao código:

Create table usuarios ( ID Int UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT, login Varchar(30), senha Varchar(40), Primary Key (ID)) ENGINE = MyISAM;
Listagem 1. Tabela usuarios (usuarios.sql)

O código acima, criou uma tabela chamada usuarios, contendo os seguintes campos: login (do tipo varchar com no máximo 30 caracteres), senha (do tipo varchar com no máximo 40 caracteres), e o campo ID (do tipo INT, e com auto incremento.)

Agora segue uma pequena explicação sobre cada 1 dos 3 campos.

Criando o Formulário de cadastro

Agora vamos criar o nosso formulário html. Nesse caso ão utilizaremos estilos CSS, apenas um layout simples para entender o funcionamento do sistema (Caso queira saber como estilizar o seu formulário acesse este link: Customizando formulários com CSS )

Vamos ao código apresentado na Listagem 2.

<html> <head> <title> Cadastro de Usuário </title> </head> <body> <form method="POST" action="cadastro.php"> <label>Login:</label><input type="text" name="login" id="login"><br> <label>Senha:</label><input type="password" name="senha" id="senha"><br> <input type="submit" value="Cadastrar" id="cadastrar" name="cadastrar"> </form> </body> </html>
Listagem 2. Página cadastro.html
Figura 1. cadastro.html

Atenção para um ponto importante dessa página:

Estamos utilizando o método post, para o envio dos dados para a página php. Você também pode utilizar o GET, porém, o método POST é mais seguro no envio das informações, já que o método GET passa os valores dos campos como parâmetros pela URL.

Criando o cadastro.php

Agora vamos criar a página cadastro.php, essa página ira tratar os dados inseridos no formulário de cadastro e inserí-los na sua tabela no banco de dados.

Vamos ao código da Listagem 3.

<?php $login = $_POST["login"]; $senha = MD5($_POST["senha"]); $connect = mysql_connect("nome_do_servidor","nome_de_usuario","senha"); $db = mysql_select_db("nome_do_banco_de_dados"); $query_select = "SELECT login FROM usuarios WHERE login = "$login""; $select = mysql_query($query_select,$connect); $array = mysql_fetch_array($select); $logarray = $array["login"]; if($login == "" || $login == null){ echo"<script language="javascript" type="text/javascript"> alert("O campo login deve ser preenchido");window.location.href=" cadastro.html";</script>"; }else{ if($logarray == $login){ echo"<script language="javascript" type="text/javascript"> alert("Esse login já existe");window.location.href=" cadastro.html";</script>"; die(); }else{ $query = "INSERT INTO usuarios (login,senha) VALUES ("$login","$senha")"; $insert = mysql_query($query,$connect); if($insert){ echo"<script language="javascript" type="text/javascript"> alert("Usuário cadastrado com sucesso!");window.location. href="login.html"</script>"; }else{ echo"<script language="javascript" type="text/javascript"> alert("Não foi possível cadastrar esse usuário");window.location .href="cadastro.html"</script>"; } } } ?>
Listagem 3. Página cadastro.php
Nota: Na linha 7 do código acima, temos a verificação ($login == "" || $login == null), essa é a restrição que falamos anteriormente, em que , o campo login não pode estar nulo.

A verificação na linha 13 refere-se à existência de um usuário com o mesmo nome, ou seja, caso o nome exista no banco de dados, um alerta é acionado.

Criando o formulário de login

Com a página de cadastro criada, vamos agora ao formulário de login, que fará o envio das informações para uma página PHP que verificará a existência desse usuário.

Vamos ao código da Listagem 4.

<html> <head> <title> Login de Usuário </title> </head> <body> <form method="POST" action="login.php"> <label>Login:</label><input type="text" name="login" id="login"><br> <label>Senha:</label><input type="password" name="senha" id="senha"><br> <input type="submit" value="entrar" id="entrar" name="entrar"><br> <a href="cadastro.html">Cadastre-se</a> </form> </body> </html>
Listagem 4. - login.html
Figura 2. login.html

Criando o login.php

Essa página será responsável por tratar as informações inseridas na página de login e verificar se o usuário inseriu as informações corretas, e logo em seguida redirecioná-lo.

<?php $login = $_POST["login"]; $entrar = $_POST["entrar"]; $senha = md5($_POST["senha"]); $connect = mysql_connect("nome_do_servidor","nome_de_usuario","senha"); $db = mysql_select_db("nome_do_banco_de_dados"); if (isset($entrar)) { $verifica = mysql_query("SELECT * FROM usuarios WHERE login = "$login" AND senha = "$senha"") or die("erro ao selecionar"); if (mysql_num_rows($verifica)<=0){ echo"<script language="javascript" type="text/javascript"> alert("Login e/ou senha incorretos");window.location .href="login.html";</script>"; die(); }else{ setcookie("login",$login); header("Location:index.php"); } } ?>
Listagem 5. login.php

Criando a index.php

Agora criaremos a página index.php , que terá duas partes , uma parte pública, e outra restrita.

<?php $login_cookie = $_COOKIE["login"]; if(isset($login_cookie)){ echo"Bem-Vindo, $login_cookie <br>"; echo"Essas informações <font color="red">PODEM</font> ser acessadas por você"; }else{ echo"Bem-Vindo, convidado <br>"; echo"Essas informações <font color="red">NÃO PODEM</font> ser acessadas por você"; echo"<br><a href="login.html">Faça Login</a> Para ler o conteúdo"; } ?>
Listagem 6. index.php

Pronto, agora você já tem um simples sistema de cadastro e login para usar no seu projeto, lembrando que isso é apenas o básico e podem ser utilizadas várias outras técnicas para validação de login e segurança.


Links Úteis

  • Primeiros passos com a jQuery: Aprenda neste curso front-end como criar botões com a biblioteca jQuery.
  • .NET na prática: Neste Guia de Consulta você encontrará conteúdos que abordam na prática o desenvolvimento de aplicações em .NET utilizando seus variados frameworks, como ASP.NET MVC, Web API e Entity Framework.
  • Mapeamento Objeto-Relacional com TMS Aurelius: Veremos neste artigo como funciona e como utilizar o framework de Mapeamento Objeto-Relacional TMS Aurelius, que permite lidar com bancos de dados aproveitando os recursos da orientação a objetos.

Saiba mais sobre PHP e MySQL ;)

  • Guias PHP: Encontre aqui todos os Guias de estudo que você precisa para dominar a linguagem PHP, desde o recurso mais básico até o mais avançado. Escolha o seu!
  • MySQL: Neste guia de consulta você encontrará diversos conteúdos que podem ser usados ao longo dos seus estudos sobre o banco de dados MySQL. Consulte este guia para aprender mais sobre a administração e uso desse SGBD.
  • Banco de Dados para Programadores: Neste guia você encontrará os principais conteúdos que você precisa estudar, como desenvolvedor, para trabalhar com bancos de dados.
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados