Skip to main content

Pagina De Login Em Html Interface Apenas Updated FREE

Pagina De Login Em Html Interface Apenas

Fala pessoal, hoje vamos ver como se faz um sistema de login passo-a-passo.

O meu intuito nesse artigo n�o � entregar um script pronto, mas sim te mostrar o �caminho das pedras� enquanto voc� � quem criar� o seu pr�prio sistema.

Vers�es utilizadas nesse artigo: PHP five.2.ix e MySQL 5.0.v.

O nosso sistema consistir� em um login simples, validado por usu�rio east senha (encriptada) contra uma tabela no banco de dados e armazenando os dados na sess�o. Haver� dois n�veis de acesso para os nossos usu�rios: normal (1) e administrador (2).

Criando a Tabela MySQL

Voc� pode executar esse c�digo MySQL para criar a nossa tabela de usu�rios que tem vii campos: id, nome, usuario, senha, northward�veis, ativo east cadastro, como mostra a Listagem 1.

saiba mais Saiba mais sobre o MySQL

                  CREATE Tabular array IF NOT EXISTS `usuarios` (       `id` INT(eleven) UNSIGNED Not NULL AUTO_INCREMENT,       `nome` VARCHAR( 50 ) NOT Nil ,       `usuario` VARCHAR( 25 ) NOT Zip ,       `senha` VARCHAR( 40 ) Not Zippo ,       `email` VARCHAR( 100 ) Non NULL ,       `nivel` INT(1) UNSIGNED Non Nada DEFAULT 'one',       `ativo` BOOL NOT Goose egg DEFAULT '1',       `cadastro` DATETIME NOT Null ,       Main KEY (`id`),       UNIQUE Primal `usuario` (`usuario`),       Cardinal `nivel` (`nivel`)   ) ENGINE=MyISAM ;                

Listagem 1. Criando a Tabela MySQL

Com isso voc� j� tem uma tabela pronta para o nosso tutorial. Rode esse script da Listagem 2se quiser alimentar a tabela com alguns usu�rios de teste:

                  INSERT INTO `usuarios` VALUES (Nix, 'Usu�rio Teste', 'demo', SHA1( 'demo'), 'usuario@demo.com.br', 1, 1, NOW( ));   INSERT INTO `usuarios` VALUES (NULL, 'Administrador Teste', 'admin', SHA1('admin' ), 'admin@demo.com.br', two, 1, At present( ));                

Listagem 2. Inserindo dados na tabela

Como voc�s podem perceber, o nosso campo de senha tem twoscore caracteres e quando cadastramos os usu�rios testes usamos isso significa que usaremos uma senha encriptada.

O formul�rio de Login em XHTML

Vamos criar agora o nosso formul�rio que ser� onde o visitante entrar� com bone dados eastward ser� mandado para a p�gina validacao.php onde bone dados ser�o validados (ohh) como mostra a Listagem 3.

                  <!-- Formul�rio de Login -->   <form action="validacao.php" method="post">   <fieldset>   <legend>Dados de Login</legend>       <label for="txUsuario">Usu�rio</characterization>       <input blazon="text" proper noun="usuario" id="txUsuario" maxlength="25" />       <characterization for="txSenha">Senha</label>       <input blazon="password" name="senha" id="txSenha" />           <input type="submit" value="Entrar" />   </fieldset>   </course>                

Listagem iii. Formul�rio de login

Como esse artigo northward�o � uma aula sobre formul�rios e thousand�todo POST eu vou pular a parte que fala sobre os names desses inputs e a rela��o deles com o PHP em si.

A valida��o dos dados em PHP

J� temos o banco de dados e o formul�rio de login� Agora vamos come�ar a fazer a valida��o. Os pr�ximos c�digos dever�o ser colocados dentro do validacao.php que ir� tratar os dados recebidos practise formul�rio:

Primeiro de tudo n�s precisamos verificar se o usu�rio de fato preencheu algo no formul�rio, caso contr�rio mandamos ele de volta para o index.php, como mostra a Listagem 4.

                  <?php       // Verifica se houve Post east se o usu�rio ou a senha �(s�o) vazio(southward)   if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {       header("Location: index.php"); exit;   }       ?>                

Listagem 4. Verificando se o input foi preenchido

Com isso, todo c�digo que vier depois desse if estar� seguro de que os dados foram preenchidos no formul�rio.

Agora n�s iremos abrir uma conex�o com o MySQL mas essa conex�o pode ser feita de outra forma, at� antes practise if se voc� preferir. Depois de abrir a conex�o n�s iremos transmitir os dois valores inseridos pelo visitante (usu�rio e senha) para novas vari�veis due east usaremos o mysql_real_escape_string() para evitar erros no MySQL, como mostra a Listagem 5.

                  <?php       // Verifica se houve POST e se o usu�rio ou a senha �(s�o) vazio(southward)   if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {       header("Location: index.php"); leave;   }       // Tenta se conectar ao servidor MySQL   mysql_connect('localhost', 'root', '') or trigger_error(mysql_error());   // Tenta se conectar a um banco de dados MySQL   mysql_select_db('usuarios') or trigger_error(mysql_error());       $usuario = mysql_real_escape_string($_POST['usuario']);   $senha = mysql_real_escape_string($_POST['senha']);       ?>                

Listagem 5. conectando com o MySQL

Agora � hora de validar os dados contra a tabela de usu�rios, como mostra a Listagem 6.

                  <?php       // Verifica se houve Mail service east se o usu�rio ou a senha �(due south�o) vazio(south)   if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {       header("Location: alphabetize.php"); exit;   }       // Tenta se conectar ao servidor MySQL   mysql_connect('localhost', 'root', '') or trigger_error(mysql_error());   // Tenta se conectar a um banco de dados MySQL   mysql_select_db('usuarios') or trigger_error(mysql_error());       $usuario = mysql_real_escape_string($_POST['usuario']);   $senha = mysql_real_escape_string($_POST['senha']);       // Valida��o do usu�rio/senha digitados   $sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '".$usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = one) LIMIT 1";   $query = mysql_query($sql);   if (mysql_num_rows($query) != ane) {       // Mensagem de erro quando os dados s�o inv�lidos e/ou o usu�rio n�o foi encontrado       echo "Login inv�lido!"; exit;   } else {       // Salva os dados encontados na vari�vel $resultado       $resultado = mysql_fetch_assoc($query);   }       ?>                

Listagem 6. Validando Dados

Repare que estamos buscando registros que tenham o usu�rio igual ao digitado pelo visitante e que tenham uma senha igual a vers�o SHA1 da senha digitada pelo visitante. Tamb�k buscamos apenas por registros de usu�rios que estejam ativos, assim quando voc� precisar remover um usu�rio do sistema, mas n�o pode simplesmente excluir o registro � s� trocar o valor da coluna ativo pra zero, como vemos na Listagem 7.

A consulta gerada fica mais ou menos como mostra a Listagem vii:

                  SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = 'a') AND (`senha` = 'e9d71f5ee7c92d6dc9e92ffdad17b8bd49418f98') AND (`ativo` = 1) LIMIT 1                

Listagem 7. Select na tabela

Depois de rodar a consulta (query) n�s verificamos se o n�mero de resultados encontrados (ou n�o) � diferente de um, caso seja � exibida uma mensagem de erro acompanhada de um leave que finaliza o script� Caso ele encontre apenas um resultado n�southward temos o nosso usu�rio e j� puxamos o seu ID, nome e n�vel de acesso do banco de dados.

Salvando os dados na sess�o exercise PHP

Agora n�s precisamos salvar os dados encontrados na sess�o pois eles ser�o utilizados mais tarde, em outras p�ginas e eles precisam �persistir� at� 50� Depois de salvar bone dados na sess�o n�s iremos redirecionar o visitante para uma p�gina restrita, como mostra a Listagem 8.

                  if (mysql_num_rows($query) != 1) {       // Mensagem de erro quando bone dados s�o inv�lidos eastward/ou o usu�rio north�o foi encontrado       echo "Login inv�lido!"; exit;   } else {       // Salva bone dados encontrados na vari�vel $resultado       $resultado = mysql_fetch_assoc($query);           // Se a sess�o northward�o existir, inicia uma       if (!isset($_SESSION)) session_start();           // Salva os dados encontrados na sess�o       $_SESSION['UsuarioID'] = $resultado['id'];       $_SESSION['UsuarioNome'] = $resultado['nome'];       $_SESSION['UsuarioNivel'] = $resultado['nivel'];           // Redireciona o visitante       header("Location: restrito.php"); exit;   }                

Listagem 8. Salvando os dados na sess�o

Verificando se o usu�rio est� logado

Nosso sistema de login est� quase completo! Agora s� precisamos verificar se o usu�rio est� logado no sistema e se o seu o n�vel de acesso condiz com o da p�gina. Vamos agora escrever um pequeno bloco de PHP no in�cio practise arquivo restrito.php (que due south� deve ser acessado por usu�rios logados), como mostra a Listagem ix.

                  <?php       // A sess�o precisa ser iniciada em cada p�gina diferente   if (!isset($_SESSION)) session_start();       // Verifica se n�o h� a vari�vel da sess�o que identifica o usu�rio   if (!isset($_SESSION['UsuarioID'])) {       // Destr�i a sess�o por seguran�a       session_destroy();       // Redireciona o visitante de volta pro login       header("Location: index.php"); get out;   }       ?>       <h1>P�gina restrita</h1>   <p>Ol�, <?php echo $_SESSION['UsuarioNome']; ?>!</p>                

Listagem 9. Verificando se o usu�rio est� logado

Pronto meu amigo! O seu sistema de login est� pronto para funcionar� S� vamos fazer alguns incrementos para ele ficar mais �usa�vel�� Agora voc� vai ver como fazer a verifica��o de usu�rio logado e de n�vel de acesso, por exemplo para uma p�gina onde apenas bone administradores possam ter acesso, como mostra a Listagem ten.

                  <?php       // A sess�o precisa ser iniciada em cada p�gina diferente   if (!isset($_SESSION)) session_start();       $nivel_necessario = 2;       // Verifica se n�o h� a vari�vel da sess�o que identifica o usu�rio   if (!isset($_SESSION['UsuarioID']) OR ($_SESSION['UsuarioNivel'] <$nivel_necessario)) {       // Destr�i a sess�o por seguran�a       session_destroy();       // Redireciona o visitante de volta pro login       header("Location: index.php"); exit;   }       ?>                

Listagem 10 : Verificando usu�rio logado

C�digo de Logout

O arquivo logout.php � t�o simples que pode ter uma linha s�, como vemos na Listagem xi.

                  <?php session_start(); session_destroy(); header("Location: alphabetize.php");exit; ?>                

Listagem eleven : C�digo de Logout

Ou se voc� preferir, uma vers�o mais extensa (Listagem 12):

                  <?php       session_start(); // Inicia a sess�o       session_destroy(); // Destr�i a sess�o limpando todos os valores salvos       header("Location: index.php"); go out; // Redireciona o visitante   ?>                

Listagem 12 : C�digo de logout mais extenso

Artigo originalmente publicado por Thiago Belem: Como criar um Sistema de Login com Due north�veis de Permiss�o

Chega de perder tempo!

Comece hoje mesmo a programar de verdade

Apenas 12x de R$ 54,90

Por que a DevMedia?

  • Did�tica focada no iniciante
  • Aprenda construindo projetos reais
  • Domine as tecnologias mais usadas no mercado
  • Professores online o tempo todo
  • + de 8000 exerc�cios gamificados
  • + de 100 mil alunos formados
autor
Receba nossas novidades

Pagina De Login Em Html Interface Apenas

DOWNLOAD HERE

Source: https://www.devmedia.com.br/php-sistema-de-login-com-niveis-de-acesso/37217

Posted by: jeremiahwanding.blogspot.com

Comments