View Full Version : Php Sessões / senhas md5


Fabriziopt
31-07-2007, 00:29
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:


<?php

echo md5("senha123");

echo "<br>";

echo md5("teste");

?>



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;

}

?>
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

Kayvlim
31-07-2007, 02:53
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 ;)

AliFromCairo
31-07-2007, 04:29
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:


INSERT INTO user VALUES ('username', MD5('password'));

Demio
31-07-2007, 09:34
Não te aconselho a usar só MD5 para as passes. Usa antes SHA1 com um SALT MD5. Google it :P

Fabriziopt
31-07-2007, 15:00
obrigado pela ajuda
Eu nao estou a perceber como e onde ponho o codigo md5
abraço

Fabriziopt
31-07-2007, 15:01
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

CoolMaster
31-07-2007, 16:53
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...

capricorn
31-07-2007, 17:00
ao colocares no inicio do código (em todos os ficheiros)

session_start();A sessão é mantida durante a navegação, o que significa que as variáveis $_SESSION["variavel"]não são apagadas durante a mesma.

Fabriziopt
01-08-2007, 12:00
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
http://www.techzonept.com/images/styles/newtzstyle/statusicon/user_offline.gif http://www.techzonept.com/images/styles/newtzstyle/buttons/report.gif (http://www.techzonept.com/report.php?p=1870276)