Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Cadastro e Login - #15 Banco de Dados

03/10/2018

Hoje vamos criar as três tabelas do banco de dados do nosso sistema de Cadastro e Login utilizando PHP e MySql.

Alterando a ClassConexao

Antes de mais nada, faremos uma pequena alteração na ClassConexao, passando as constantes do arquivo config.php para a nossa classe. Ficará da seguinte forma:

<?php
namespace Models;

abstract class ClassConexao{

    protected function conectaDB()
    {
        try{
            $con=new \PDO("mysql:host=".HOST.";dbname=".DB."","".USER."","".PASS."");
            return $con;
        }catch (\PDOException $erro){
            return $erro->getMessage();
        }
    }
}

Com o código acima, todas as mudança do nosso banco de dados poderão ser alteradas facilmente apenas mudando o arquivo config.php

Criando o banco de dados para o sistema de login

Conforme explicado anteriormente, nosso sistema terá 03 tabelas sendo elas:

users: responsável por abrigar todos os dados pessoais e de login do usuário.
attempt: armazenará as tentativas de login errôneas feitas pelo usuário, para que evitemos que um robô fique tentando combinações de senhas.
confirmation: gerará um token para confirmação do usuário pelo email, assim como a alteração de senha pelo "Esqueci minha senha".

O banco de dados ficará assim:

CREATE TABLE IF NOT EXISTS `attempt` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ip` varchar(20) CHARACTER SET latin1 NOT NULL,
  `date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
        
CREATE TABLE IF NOT EXISTS `confirmation` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `email` varchar(90) NOT NULL,
  `token` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nome` varchar(90) NOT NULL,
  `email` varchar(90) NOT NULL,
  `senha` varchar(90) NOT NULL,
  `dataNascimento` varchar(15) NOT NULL,
  `cpf` varchar(20) NOT NULL,
  `dataCriacao` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `permissoes` varchar(20) NOT NULL,
  `status` varchar(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
COMMIT;

Repare acima que setamos o email com unique, afinal cada cadastro só poderá optar por um email único para evitar conflito de login.

Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Cadastro e Login - #14 Validate Email, Data e CPF
Na vídeo-aula de hoje realizaremos a validação de email, data e cpf dentro da nossa ClassValidate.
Saiba mais!
Cadastro e Login - #16 Concluindo Cadastro
Hoje trabalharemos com a primeira inserção no banco de dados recém criado. Para isso criaremos a model ClassCadastro.
Saiba mais!
Cadastro e Login
Neste curso vamos aprender a criar um sistema completo de cadastro e login.
Saiba mais!