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

Php Sessões / senhas md5

Discussão em 'Web Development' iniciada por Fabriziopt, 31 de Julho de 2007. (Respostas: 8; Visualizações: 1902)

  1. Fabriziopt

    Fabriziopt Power Member

    Boas estou a ver um código de sessões que tem as passwords em md5.
    Eu não estou a conseguir por as senhas em md5:
    SIte: http://www.linhadecodigo.com.br/artigos.asp?id_ac=258

    gerador md5:

    [FONT=Verdana,Geneva,Arial,Helvetica,sans-serif]
    <?php

    echo md5("senha123");

    echo
    "<br>";

    echo
    md5("teste");

    ?>

    [/FONT]

    [FONT=Verdana,Geneva,Arial,Helvetica,sans-serif]página que utiliza:
    <?php

    // Conexão com o banco de dados

    require "comum.php";



    // Inicia sessões

    session_start();



    // Recupera o login

    $login = isset($_POST["login"]) ? addslashes(trim($_POST["login"])) : FALSE;

    // Recupera a senha, a criptografando em MD5

    $senha = isset($_POST["senha"]) ? md5(trim($_POST["senha"])) : FALSE;



    // Usuário não forneceu a senha ou o login

    if(!$login || !$senha)

    {

    echo
    "Você deve digitar sua senha e login!";

    exit;

    }



    /**

    * Executa a consulta no banco de dados.

    * Caso o número de linhas retornadas seja 1 o login é válido,

    * caso 0, inválido.

    */

    $SQL = "SELECT id, nome, login, senha, postar

    FROM aut_usuarios

    WHERE login = '"
    . $login . "'";

    $result_id = @mysql_query($SQL) or die("Erro no banco de dados!");

    $total = @mysql_num_rows($result_id);



    // Caso o usuário tenha digitado um login válido o número de linhas será 1..

    if($total)

    {

    // Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão

    $dados = @mysql_fetch_array($result_id);



    // Agora verifica a senha

    if(!strcmp($senha, $dados["senha"]))

    {

    // TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário

    $_SESSION["id_usuario"] = $dados["id"];

    $_SESSION["nome_usuario"] = stripslashes($dados["nome"]);

    $_SESSION["permissao"] = $dados["postar"];

    header("Location: index.php");

    exit;

    }

    // Senha inválida

    else

    {

    echo
    "Senha inválida!";

    exit;

    }

    }

    // Login inválido

    else

    {

    echo
    "O login fornecido por você é inexistente!";

    exit;

    }

    ?>
    [/FONT] Não sei onde hei-de meter o gerador e como por as senhas em md5
    Ou seja não sei como funciona esta cena do md5.
    Se me derem um código mesmo não sendo em md5 ( o que acho que nao preciso, mas que funcione com sessoes) para o que eu quero da.
    Abraço
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Antes de mais, isto pertence ao Web Development ;)

    Acho que não deves estar a perceber bem o que é o MD5. Para hashares uma string qualquer, apenas tens de usar a função md5 como a usaste no primeiro bloco PHP. Onde está a dúvida?

    $md5 = md5("Hello world!");

    $md5 passa a ter "Hello world!" hashado com MD5.


    Não devo estar a perceber muito bem o que estás a perguntar =\

    edit: em vez do "addslashes", que usas para o $login, aconselho-te a usar o mysql_real_escape_string ;)
     
  3. AliFromCairo

    AliFromCairo Power Member

    Podes usar a função MD5() do MySQL e, aquando do registo de um utilizador, passas a password deste como argumento. Algo do género:

    Código:
    INSERT INTO user VALUES ('username', MD5('password'));
    
     
  4. Demio

    Demio Power Member

    Não te aconselho a usar só MD5 para as passes. Usa antes SHA1 com um SALT MD5. Google it :P
     
  5. Fabriziopt

    Fabriziopt Power Member

    obrigado pela ajuda
    Eu nao estou a perceber como e onde ponho o codigo md5
    abraço
     
  6. Fabriziopt

    Fabriziopt Power Member

    Sessoes php

    Boas
    Estou a entrar no php e quero fazer um site em que o utilizador mantenha " a sessao" durante a sua visita
    Ja tentei varios codigos mas nao tenho tido bons resultados
    Alguem me dispoes de um dos códigos para fazer uma sessao ?
    abraço
     
  7. CoolMaster

    CoolMaster Power Member

    Se dizes que ja tiveste a ver mas que não resultou para o teu caso (seja por eventual compatibilidade ou mesmo por azelhice) porque é que achas que o que te vamos dizer aqui vai resultar? Não era mais facil colocar uma questão directa?

    Além do mais existem muitos posts recentes sobre esse mesmo assunto...
     
  8. capricorn

    capricorn Power Member

    ao colocares no inicio do código (em todos os ficheiros)
    Código:
    session_start();
    A sessão é mantida durante a navegação, o que significa que as variáveis
    Código:
    $_SESSION["variavel"]
    não são apagadas durante a mesma.
     
  9. Fabriziopt

    Fabriziopt Power Member

    Boas estive a investigar no livro php5 e encontrei o seguinte codigo que apliquei no meu site
    Mas na hora do login não aceita o registo
    O codigo que inseri foi o seguinte
    index.html
    <html>
    <head><title>Login</title></head>
    <body>
    <form action="main.php" method="post">
    Sistema Auntenticado dp Site.<br>
    Login: <input type="text" name="nickname" ><br>
    Senha: <input type="password" name="password" ><br>
    <input type="submit" value="Entrar" />
    </form>
    </body></html>

    main.php
    <?php
    // Login/sessão
    // index.php


    include("auth.php");

    include("nav.php");

    echo "Esta é a homepage.";
    echo "<br><br>Utilizador - " . $_SESSION['nickname'];

    // Fechar a ligação ao mysql
    mysql_close();
    ?>

    auth.php

    <?php
    session_start();
    // auth.php
    // start session

    include("connectDB.php");

    if($_POST){
    $_SESSION['nickname']=$_POST["nickname"];
    $_SESSION['password']=$_POST["password"];
    }

    // query
    $result=mysql_query("select * from users where login='" . $_SESSION['nickname'] . "' and password='" . $_SESSION['password'] . "'");

    // número de registos
    $num=mysql_num_rows($result);
    // se não há registos aparece o ecrã de login.
    if($num < 1){
    echo "Não está autenticado. Faça login sff.<br><br>

    <form method=POST action=index.php>
    Utilizador: <input type=text name=\"nickname\">
    password: <input type=password name=\"password\">
    <BR> <BR> <BR> <BR>
    <input type=submit value=\" - Login - \">
    </form>";

    exit;
    }
    ?>

    nav.php

    <?php
    // nav.php
    ?>

    <a href=index.php>Home</a> |
    <a href=pag_1.php>pagina_1</a> |
    <a href=pag_2.php>pagina_2</a> |
    <a href=pag_3.php>pagina_3</a> |
    <a href=logout.php>logout</a>

    <br><br>

    connectdb.php

    <?php
    // connect.php


    $hostname="onde esta a base de dados";
    $mysql_login="ninkname";
    $mysql_password="senha";
    $database="nome dabase de dados";

    if (!($db = mysql_connect($hostname, $mysql_login , $mysql_password))){
    die("impossível ligar ao MySQL.");
    }else{
    if (!(mysql_select_db("$database",$db))) {
    die("Impossível ligar a db.");
    }
    }
    ?>

    Amigos o que estou a fazer de mal
    Obrigado pela disponibilidade
    Abraço
    [​IMG] [​IMG]
     

Partilhar esta Página