1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Sistema de Login com Senha Criptografada

Discussão em 'Programação' iniciada por Tecions, 19 de Agosto de 2008. (Respostas: 3; Visualizações: 4912)

  1. Tecions

    Tecions Banido

    Vou fazer este tutorial, para os iniciantes.

    O que usar?
    Bloco de Notas
    Site com phpMyadmin
    Site com MySQL

    Categoria: Médio

    Crie a tabela a seguir no mysql:


    PHP:
    CREATE TABLE usuarios 
       
    idus int(11NOT NULL auto_increment
       
    login varchar(50NOT NULL
       
    senha varchar(32NOT NULL
       
    PRIMARY KEY (idus
    ); 



    Agora vamos criar o arquivo que cadastrará o usuário.

    caduser.php

    PHP:
    <?php 
    include "conexao.php"
    // verifica se o os dados foram enviados através do método POST 
    if (getenv("REQUEST_METHOD") == "POST") { 
        
    // encripta a senha para ser cadastrada na tabela 
        
    $cod md5($passen); 

        
    // insere o registro pegando a senha criptografada no $cod 
        
    $sql "INSERT INTO usuarios (login, senha) VALUES ('$login', '$cod')"
        
    mysql_query($sql); 
    ?> 
    <script>alert("Usuário cadastrado com Sucesso!!");</script> 
    <?php 

    ?> 
    Formulário para cadastrar o usuário 
    <form action="caduser.php" method="post"> 
    Nome: <input type="text" name="login"><br> 
    Senha: <input type="text" name="passen"><br> 
    <input type="submit" value="Enviar"> 
    </form> 
    <br><br><br> 



    Até aqui tudo bem. Vamos agora criar o arquivo para listar os usuários cadastrados.

    lista_user.php:

    PHP:
    <?php 
    include "conexao.php"
    $sql "SELECT * FROM usuarios"// seleciona as colonas da tabela usuarios 
    $resultado mysql_query($sql); // executa a contulta e armazena o resultado em array 
    $num_linhas mysql_num_rows($resultado); 
    ?> 
    <html> 
    <body> 

    <table border=2> 
      <tr> 
        <td>O Número de Linhas é: <?php echo $num_linhas?></td> 
      </tr> 
    </table> 
    <table border=2 bordercolor="#800000" bordercolorlight="#800000"> 
      <tr> 
        <td colspan="3" align="center"><font face="Comic Sans MS" size="3" color="#003399">Usuário</font></td> 
      </tr> 
      <tr> 
        <td>Código</td> 
        <td>Login</td> 
        <td>Senha</td> 
      </tr> 
    <?php 
    //faz um loop ára listar em linhas os usuários cadastrados 
    for ($i 0$i $num_linhas$i++) { 
        
    $campos mysql_fetch_array($resultado); 
    ?> 
      <tr> 
        <td><?php echo $campos["idus"]; ?></td> 
        <td><?php echo $campos["login"]; ?></td> 
        <td><?php echo $campos["senha"]; ?></td> 
      </tr> 
    <?php 
    //fecha o loop 
    ?> 
    </table> 

    </body> 
    </html> 



    Continuando, vamos agora criar o arquivo responsável de logar com o usuário cadastrado.

    logar.php:

    PHP:
    <?php 
    include "conexao.php"

    if (
    getenv("REQUEST_METHOD") == "POST") { 
        
    $cod md5($passen); // pega o valor passado pelo form e criptografa 
        
    $resultado mysql_query("SELECT login, senha FROM usuarios WHERE login='$txtlog' AND senha='$cod'"); 
        if (
    mysql_num_rows($resultado) > 0) { 
            
    setcookie("logado"true); 
            
    setcookie("usuario"$txtlog); 
            
    // se o usuário existe vai para o arquivo lista_user (neste  
            // lugar vc coloca a página para onde o usuario irá se logado com sucesso 
            
    header("Location: lista_user.php"); 
        } else { 
    ?> 
    <script language="JavaScript"> 
    <!-- 
    window.alert("Usuário Não Identificado"); 
    //--> 
    </script> 
    <?php 
        
    }     

    ?>     
    <html> 
    <body> 

    <form action="logar.php" method="post" name="formlog"> 
    <table border="1"> 
      <tr> 
        <td>Login:</td> 
        <td><input type="text" name="txtlog"></td> 
      </tr> 
      <tr> 
        <td>Senha:</td> 
        <td><input type="text" name="passen"></td> 
      </tr> 
      <tr> 
        <td colspan="2"><input type="submit" value="Logar"></td> 
      </tr>     
    </table> 
    </form> 

    </body> 
    </html> 



    Estamos quase lá. Agora é hora de criarmos o arquivo para validar o usuário logado.

    valida_logar.php:

    PHP:
    <?php 
    if (!$logado) { 
        
    // se o usuario nao for cadastrado volta para a  
        // página logar.php, não altere este código. 
        
    header("Location: logar.php"); 

    ?> 



    Opa! estamos quase terminando. Agora vem o arquivo para deslogar o usuário.

    deslog.php:
    PHP:
    <?php 
    setcookie
    ("logado"); 
    // aqui você coloca a página para onde o usuario irá depois  
    // de deslogar, geralmente a página inicial do site. 
    header("Location: logar.php"); 
    ?> 


    Por: Laurimar e Tecions
     
    Última edição: 19 de Agosto de 2008
  2. Cabexas

    Cabexas Power Member

    Boas,
    corrigam-me se estiver enganado.

    // encripta a senha para ser cadastrada na tabela
    $cod = md5($passen);

    Que eu saiba a função md5 não faz encriptação, apenas cria um idgest ou hash(resumo), a partir da qual é virtualmente impossível recuperar a password.
    É só para não induzir as restantes pessoas em erro.

    De resto o tutorial está bom, para quem pretende adicionar alguma segurança a um sistema de login.
    Cumps
     
  3. Ricky2007

    Ricky2007 Power Member

    podias era mudar a cor das letras, tens as letras pretas com fundo preto da mais trabalho para ler.

    mas de resto ta tudo muito bom.

    cumps
     
  4. alakazan

    alakazan Power Member

    Desculpa a franqueza, mas esse script é muito mau para estar nesta secção.

    xss e slq injection em tudo quanto é lado. Existem métodos mais seguros que md5.
     
    Última edição: 20 de Agosto de 2008

Partilhar esta Página