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 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](https://www.devmedia.com.br/imagens/fotoscolunistas/image001-48.jpg)
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
Post a Comment