Criar Autenticação simples de Usuários
Autenticação simples de Usuários
Caros amigos, saudações, como primeiro artigo venho tratar de um recurso que considero importante, porém o exemplo é simples e aconselho seu uso somente em aplicações simples, no decorrer evoluiremos mais este recurso implementando maior segurança e menor sucetividade a falhas.
Autenticação de usuários é importante e necessário quando temos uma área restrita em nosso site ou aplicação onde somente pessoas cadastradas e autorizadas possuem acesso.
Neste exemplo estaremos trabalhando com Mysql e Session, segue abaixo o código da tabela de usuários:
-
CREATE TABLE `usuarios` (
-
`id` INT NOT NULL AUTO_INCREMENT ,
-
`nome` VARCHAR( 50 ) NOT NULL ,
-
`email` VARCHAR( 60 ) NOT NULL ,
-
`login` VARCHAR( 20 ) NOT NULL ,
-
`senha` VARCHAR( 8 ) NOT NULL ,
-
PRIMARY KEY ( `id` )
-
);
-
-
INSERT INTO `usuarios` ( `id` , `nome` , `email` , `login` , `senha` )
-
VALUES (
-
'', 'Usuario de teste', 'contato@aguinelopedroso.com', 'usuario', 'teste'
-
);
OBS: Como exemplo didático a senha esta visível, aconselho a utilização de criptografia, num próximo artigo estarei escrevendo sobre criptografia em PHP.
Criaremos 5 arquivos para o exemplo:
Index.php Login.php Auth.php Verfica.php Destroy.php
Segue abaixo a listagem detalhada dos arquivos:
Login.php
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html xmlns="https://www.w3.org/1999/xhtml">
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-
<title>Autenticação Simples de Usuário</title>
-
</head>
-
-
<form action="auth.php" name="autenticacao" method="post">
-
<table style="width:100%; height:100%; border:0px; text-align:center">
-
<td width="50">Login:</td>
-
</tr>
-
<td>Senha:</td>
-
</tr>
-
</tr>
-
</table></td>
-
</tr>
-
</table>
-
</form>
-
</body>
-
</html>
Auth.php
-
<?php
-
// Recebemos os dados digitados pelo usuário
-
$login = $_POST['login'];
-
$senha = $_POST['senha'];
-
-
//Estabelecemos uma conexão com o banco de dados
-
//mysql_connect("Nome ou IP do servidor", "Usuario", "Senha");
-
//caso a conexão seja estabelecida corretamente seleciona o banco de dados a ser usado
-
-
if($conn)
-
{
-
}
-
-
//Criamos o comando que efetua a busca do banco
-
$sql = "SELECT id, nome FROM usuarios WHERE login = '$login' AND senha = '$senha'";
-
//Executamos o comando
-
//Retornamos o numero de linhas afetadas
-
//Verificams se alguma linha foi afetada, caso sim retornamos suas informações
-
if($num > 0)
-
{
-
//Retorna os dados do banco
-
$id = $rst["id"];
-
$nome = $rst["nome"];
-
-
//Inicia a sessão
-
//Registra os dados do usuário na sessão
-
$_SESSION["id"] = $id;
-
$_SESSION["nome"] = $nome;
-
$_SESSION["login"] = $login;
-
-
//Encerra a conexão com o banco
-
//Redireciona para o index
-
}
-
else
-
{
-
//Encerra a conexão com o banco
-
//Caso nenhuma linha seja retornada emite o alerta e retorna
-
echo "<b>Nenhum usuário foi encontrado com os dados informados...ornando</b>";
-
echo "<meta http-equiv='refresh' content='3;URL=login.php'>";
-
}
-
?>
Index.php
-
<?php
-
//Inclui o arquivo de verificação
-
include_once("verifica.php");
-
?>
-
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html xmlns="https://www.w3.org/1999/xhtml">
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-
<title>Untitled Document</title>
-
</head>
-
-
<body>
-
<a href="destroy.php">Sair</a>
-
</body>
-
</html>
Verifica.php
-
<?php
-
//Inicia a sessão
-
-
//Verifica se há dados ativos na sessão
-
{
-
//Caso não exista dados registrados, exige login
-
}
-
?>
Destroy.php
-
<?php
-
//Inicia a sessão
-
//Elimina os dados da sessão
-
-
//Encerra a sessão
-
?>
As listagem estão todas comentadas e bem explicativas, este exemplo pode ser rodado usando PHP 4 ou 5. Para garantir que suas paginas sejam acessadas somente mediante apresentação de login e senha inclua:
-
<?php
-
Include_once(“verifica.php”);
-
?>
Caso o usuário não esteja logado será redirecionado para a pagina de login.
Bem pessoal espero que este exemplo seja útil e estou aberto a criticas e sugestões
Um forte abraço e até a próxima.
Comentários