Fala gente,
Hoje, domingão, vou mostrar pra vocês como é fácil usar o Sistema de logins com classe no PHP que ensinei a fazer durante as últimas semanas.
Antes de mais nada vocês devem criar um arquivo chamado usuarios.class.php em algum lugar do seu site, de preferência dentro de uma pasta chamada “includes” ou “inclues/classes” pra ficar mais organizado.
Dentro desse arquivo você insere o conteúdo da classe criada durante a Parte 1, Parte 2, Parte 3 e Parte 4 do tutorial.
Para que todo mundo entenda como é essa instalação vamos criar uma situação hipotética onde vocês tem um site, nesse site existem as seguintes páginas:
- A página de login (login.php);
- A página que irá validar o login e redirecionar o visitante logado (valida_login.php);
- A página que o usuário acessará para sair do sistema ou fazer o logout (logout.php);
- A página que é restrita e só pode ser acessada por usuários logados no sistema (pagina_restrita.php).
Os nomes desses arquivos não são obrigatórios, o que importa é que você entenda onde vai cada código em função do tipo de página… Outra coisa é que essas funções como “validar o login” serão feitas usando a nossa classe.
Agora vamos ao passo-a-passo de como usar a classe:
1. Incluir a classe nas páginas importantes
Vocês devem incluir o arquivo usuarios.class.php (usando require_once() ou include_once()) em todas as páginas que terão alguma ligação com o sistema de login… Provavelmente serão apenas as páginas que eu listei ali em cima.
2. Validar o login
Depois de inserir a classe em todos os arquivos vamos na página que recebe e valida os dados do login (valida_login.php) e, logo após “includar” a classe no começo do arquivo colocamos também o seguinte código:
<?php
// Inclui o arquivo com a classe de login
require_once("includes/classes/usuarios.class.php");
// Instancia a classe
$userClass = new Usuario();
// Pega os dados vindos do formulário
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
// Se o campo "lembrar" não existir, o script funcionará normalmente
$lembrar = (isset($_POST['lembrar']) AND !empty($_POST['lembrar']));
// Tenta logar o usuário com os dados
if ( $userClass->logaUsuario( $usuario, $senha, $lembrar ) ) {
// Usuário logado com sucesso, redireciona ele para a página restrita
header("Location: pagina_restrita.php");
exit;
} else {
// Não foi possível logar o usuário, exibe a mensagem de erro
echo "<strong>Erro: </strong>" . $userClass->erro;
}
?>Primeiro nós instanciamos a classe e depois, nas linhas 8 e 9, nós pegamos os dados vindos do formulário de login (login.php) via POST… Após pegar os dados nós tentamos logar o usuário com esses dados, a própria classe já se encarrega de validar os dados, criar a sessão, os cookies e tudo mais… A condição da linha 12 será válida se o sistema conseguir logar o usuário e falsa se algo der errado ou os dados forem incorretos.
Caso o usuário tenha sido logado com sucesso, o próximo passo seria redirecioná-lo para a página restrita, e foi isso o que fizemos na linha 14… ![]()
3. Proteger a(s) página(s) restrita(s)
Agora que nosso login já está sendo validado e redirecionado, precisamos proteger a página registra (ou as páginas, isso depende do seu site)… Vamos novamente no começo do arquivo (pagina_restrita.php) e vamos inserir o seguinte código:
<?php
// Inclui o arquivo com a classe de login
require_once("includes/classes/usuarios.class.php");
// Instancia a classe
$userClass = new Usuario();
// Verifica se não há um usuário logado
if ( $userClass->usuarioLogado() === false ) {
// Não há um usuário logado, redireciona pra tela de login
header("Location: login.php");
exit;
}
?>Mas é só isso!? Sim! ![]()
A classe verifica se há um usuário logado, caso não exista um usuário logado ele é redirecionado pro formulário de login.
4. Página de logout
Vocês já fizeram a validação do login e a proteção da página restrita… Agora só falta a página de logout!
Vamos criar um arquivo chamado logout.php que será acessado quando o usuário quiser sair do sistema, nele inserimos apenas o seguinte código:
<?php
// Inclui o arquivo com a classe de login
require_once("includes/classes/usuarios.class.php");
// Instancia a classe
$userClass = new Usuario();
// Usuário fez logout com sucesso?
if ( $userClass->logout() ) {
// Redireciona pra tela de login
header("Location: login.php");
exit;
}
?>O código fará com que o usuário seja deslogado e redirecionado para a tela de login… Quer mais moleza que isso?
5. Exibindo dados do usuário
Há! Pensou que tinha acabado?
Para exibir dados do usuário logado, como o nome ou e-mail, você precisa inserir um simples echo puxando os dados da sessão, assim:
Seja bem vindo(a), <?php echo $_SESSION['usuario_nome']; ?>!
A chave “usuario_nome” é composto por duas variantes: a parte “usuario_” vem da propriedade $prefixoChaves (definida na linha 49 do usuarios.class.php) que estará presente em todos os valores criados pela classe e salvos na sessão… Já a parte “nome” da chave é o nome da campo que você buscou na tabela de usuários, definido na propriedade $dados (definida na linha 37 do usuarios.class.php).
Então, se você precisar pegar o ID do usuário você deveria usar $_SESSION['usuario_id'].
Fala sério minha gente, assim ficou fácil de mais, não é? Mostre a sua (in)satisfação e deixe seu comentário. ![]()
Abraços e uma boa noite!
Você também vai gostar de ler:
- Criando um sistema de logins com classe no PHP – Parte 2
- Criando um sistema de logins com classe no PHP – Parte 4
- Como criar um Sistema de Login com Níveis de Permissão
- Criando um sistema de logins com classe no PHP – Parte 3
- Criando um sistema de logins com classe no PHP – Parte 1
Postado em Artigos, MySQL, PHP, Tutoriais
Com as tags Busca, Classe, Classes, Código, Cookie, Cookies, E-mail, empty, Formulário, Funções, Header, Instalação, Login, MySQL, PHP, PHP 5, POO, Proteção, Scripts, Segurança, Senha, Sessão, Session, Sistema, SQL, SQL Injection, Tutorial, Validação
Escrito por Thiago Belem
Gostou desse artigo?
Não se esqueça de assinar o RSS e divulgue-o para o mundo:
