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:

Thiago, eu nao sei se é assim mesmo, mais parece que este artigo esta incompleto, aqui para min a ultima linha do texto que aparece é essa:
Dentro desse arquivo você insere o conteúdo da classe criada durante a
Pronto, acaba ai!
@Joabe
Obrigado pelo alerta! Já consegui voltar com o código do post.. Obrigado.
Boa tarde,
Como fasso para usar esse sistema com query string é possivel?
Atenciosamente,
Hugo Fabricio
@Hugo
Query string seria via método GET? Você passaria o usuário e a senha por método GET?
parabens thiago
excelente material e sucesso pra vc
hum, o lembrar não funcionou, seilá se fiz algo errado.
mas queria saber, preciso passar algum valor por ele ou não?
pois meu checkbox está correto, mas a página não lembra os dados depois.
bah veio, funcionou sim e pah, eu que viajei
mas olha, tipo: muitos sites quando você envia o formulário de login e salva
na outra vez que fizer logout e for para pagina de login
no formulario fica o nome de usuario e senha ja salva, você sabe como fazer isso? ou ja é proprio do navegador?
@Jackson
Esse recurso é o “lembrar senha” do navegador mesmo… Todos os navegadores atuais têm isso.
como eu faço pra mudar.. por exemplo eu uso outro banco de dados o envez de usuario e user e senha e pass onde eu mudo? eu mudei ele verifica a senha certa. mas fica retornando como nao tivese logado.
e a parte. que tava dando erro na consulta eu mudei
// Consulta os dados retirei => {$dados} incluir *
$sql = “SELECT * FROM `{$this->bancoDeDados}`.`{$this->tabelaUsuarios}` WHERE {$binary} `{$this->campos['user']}` = ‘{$user}’”;
@Brunno
Estude um pouco mais de PHP básico e integração com o MySQL, o proposito do tutorial é mostrar como é simples criar um sistema de login utilizando PHP Orientado à Objetos, o que é um nível avançado de programação “simples” no PHP.
“A consulta dos dados é inválida” pra mim retorna esse erro pq sera?
@Bruno
Verifique se você seguiu o passo-a-passo corretamente e se você mudou algo no script.. Esse erro acontece quando a consulta MySQL gerada está incorreta.
Parabéns, são seres humanos como você que tornam o mundo melhor, proporcionando ao seu semelhante o maior de todos os presentes, algo que ninguém jamais poderá roubar: o conhecimento.
Estou me aventurando no mundo do PHP e tenho aprendido muito com você.
Esse tutorial então… Simplesmente fantástico.
Porém aproveitando de sua boa vontade, você pretende ensinar “Como recuperar a senha” como o exemplo?
Ajudaria e muito, os “aventureiros” como eu.
Olá amigo parabens pelo conteúdo de seu blog, sem duvida o mais completo, só uma pergunta a vc Thiago e a todos os visitantes, tem algum link para super leigos (iniciantes do beaba) no assunto? para não ficarmos tomando tempo com perguntas idio…
Muito legal Thiago! É muito importante ver boas práticas do PHP sendo divulgada. O pessoal que baixa o tutorial acaba incorporando essas práticas no próprio código depois.
Valeu!
Thiago, as linhas 7~9 podem ser excluídas daí, já que o mysql_real_scape_string() sobrepõe os valores antigos.
Estou encucado com uma coisa… estaria faltando o mysql_connect dentro dessa classe?
@Roberto
Não Roberto… Esse sistema não faz a conexão com o banco MySQL, ele apenas usa as informações salvas na tabela usuarios… Você precisa fazer a conexão MySQL antes para o código funcionar.
Otemo seus tutoriais… estava querendo aprender PHP OO e o seu blog é o melhor!!! depois poderia mostrar como fazer um sistema de notícias em OO
flw Abraços
E aê Thiago! Essa sequência sobre sistema de login ficou muito bem feita! Conteúdo com essa qualidade é difícil de encontrar.
Parabéns!
Muito bem feito realmente.
Parabéns Thiago, muito bom, ótimo material, sucesso!
Camarada, você só não deu o anzol e a vara de pescar, como também deu o peixe…
Muito show! Parabéns!
Thiago, ficou faltando um mysql_real_escape_string() para evitar um sqlinjection
@Ronald
Já fiz a correção no script… Obrigado pela dica.
Parabéns,
Eu trabalhava com ASP, agora estou começando no PHP, estava procurando um sistema de login no google, simples e seguro, encontrei essa maravilha de tutorial, agora quero aprofundar no uso de classes no PHP, gostei muito.
Conheci seu blog agora, vou ver se implemento esse sistema de login, e já volto para ler os artigos sobre Cake.
Também no aguardo do sistema de níveis de permissão.
Abraços
Excelente está sequência de tutoriais, quando vamos ver a quinta parte, será que será a último ou teremos mais ?
Abraços
Sim minha gente, não há problema nenhum em colocar o código do item 3 em um arquivo e incluir ele nas suas páginas restritas…
Parabéns Thiago, tenho seguido os tutoriais com muita atenção, adoro o Blog, com linguagem simples e tudo muito bem comentado. Agora só falta o sistema de permissões aplicado nessa classe né?
@Helder
Exatamente… Vai sair em breve.. Ainda essa semana.