• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

subkiller

problema no md5

4 mensagens neste tópico

boas a todos

no meu sistema de login, tenho um problema...

eu fiz um sistema de login simples onde adicionei um user directamente na base de dados pois nao tenho o registar...

acontece que queria esconder a pass com o md5 por isso criei um sistema pa registar simples apenas para guardar a pass como md5...

mas agora sempre que tento entrar da sempre "login errado" e eu nao consigo resolver este porblema...

vou passar a mostarar o codigo...

login.php

<?php

session_start();

include "server_info.php";

if(!($id = mysql_connect($server, $username, $password))) 
{
    return 0;
}

if (mysql_select_db($database, $id))
{
if($username = $_POST['username'])
{
	if($password = md5($_POST['password']))
	{
		$query = "SELECT * FROM utilizadores WHERE username='$username' AND password='$password'";
		$result = mysql_query($query) or die (mysql_error());
		if (mysql_num_rows($result) != 1) 
		{
			echo "<center><font color='red'><b>Login Errado</b></font></center></p>";
			include "index.html";
		}
		else
		{
			$a = mysql_fetch_array($result);
			@session_start();
			$_SESSION['username'] = $a['username'];
			//$_SESSION['password'] = md5($a['password']);
			include "home.php";
		}
	}
	else
	{
		echo "<center><font color='red'><b>Password Errada</b></font></center></p>";
	}
}
else
{
	echo "<center><font color='red'><b>Username Errado</b></font></center></p>";
}
}
else
{
mysql_close();
return 0;
}

?>

registar.php


<?php

//Informação da base de dados

include "server_info.php";

//Ligar a base de dados

mysql_connect($server, $username, $password) or die(mysql_error());
mysql_select_db($database) or die(mysql_error());

       
$username = $_POST['username'];
$password = md5($_POST['password']);

//Verifica se o username já existe

$checkuser = mysql_query("SELECT username FROM utilizadores WHERE username='$username'");

$username_exist = mysql_num_rows($checkuser);


//Se não existirem erros com o username
//usa-se uma query para inserir os dados na base de dados.

$query = "INSERT INTO utilizadores (username, password)
VALUES('$username', '$password')";
mysql_query($query) or die(mysql_error());
mysql_close();

echo "<center><font color='red'><b>Foi registado com sucesso</b></font></center></p>";
    
</font></center>";
?>

<html>
<body background="../images/fundo.gif">
<a href="login.html"><center><font color="white"><b>Agora faz o Login</b></font></center></a>
</body>
</html>

alguem percebe onde esta o meu erro??

cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

   if($username = $_POST['username'])
   {

Isto não faz o que tu julgas que faz :)

Isto mete o valor de $_POST['username'] na variável local $username e depois faz a parte 'true' do if se o valor não for '' (a string vazia) ou a parte 'false' do if, se o valor for ''.

Cá para mim queres alterar para

   if($username == $_POST['username'])
   {

... o mesmo para $password

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta assim:

if (mysql_num_rows($result) != 0) 
         {
            $a = mysql_fetch_array($result);
            @session_start();
            $_SESSION['username'] = $a['username'];
            //$_SESSION['password'] = md5($a['password']);
            include "home.php";
         }
     else 
         {
          echo "<center><font color='red'><b>Login Errado</b></font></center></p>";
            include "index.html";


          }

Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora