Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TheMasterFlash

[Resolvido] Login md5

Recommended Posts

Ai pessoal tudo bem?

 

Bem tou aqui com um problema tipo eu criei um sistema de cadastro e login no cadastro tudo bem consegui fazer quando o user se regista a password na base de dados fica coadificada agora o problema é no login como a pass esta coadificada com md5 não consigo ir busca-la quando fasso login aparece sempre "Verifica se prenches-tes correctamente todos os dados!" meu codigo:

 

<?php
ob_start(); 

include ('../Includes/Conexao.php');
require_once('funcoes.php');

$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string md5($_POST['password']);

if (!empty($_POST) && (empty($_POST['email']) || empty($_POST['password']))) {

echo "<script> alert('O email e a password sao obrigatorios!');</script> <meta http-equiv='refresh' content='0; url=inicio.php'>"; exit;
}

$sql = "SELECT `id`,`nome`,`email`,`idade` FROM `registos` WHERE (`email` = '". $email."') AND (`password` = '".$password."')";
$query = mysql_query($sql);
if (mysql_num_rows($query) != 1) {

echo "<script> alert('Verifica se prenches-tes correctamente todos os dados!');</script> <meta http-equiv='refresh' content='0; url=inicio.php'> "; exit;
} else {

$resultado = mysql_fetch_assoc($query);

if (!isset($_SESSION)) session_start();
$_SESSION['id'] = $resultado['id'];
$_SESSION['u_email'] = $resultado['email'];
$_SESSION['u_nome'] = $resultado['nome'];

if(isset($_POST['lembrar'])){
 setcookie("lembrar", $email,  time()+(60*60*24*365)); 
}

header("Location: ouvinte/index.php?id={$_SESSION['id']}&nome={$_SESSION['u_nome']}"); exit;
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso era para dar erro

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

 

se não estiver aparecendo habilite os erros

coloca no início do código

error_reporting(E_ALL);
ini_set("display_errors", 1);

 

mude para

$password = md5(mysql_real_escape_string($_POST['senha']));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi a finalidade da função ob_start no seu script.

 

Experimente usar a função MD5 do próprio MySQL.

 

Mude aqui:

 

$password = mysql_real_escape_string($_POST['password']);

 

E aqui:

 

$sql = "SELECT `id`,`nome`,`email`,`idade` FROM `registos` WHERE (`email` = '". $email."') AND (`password` = MD5('".$password."'))";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leo nao funcionou :/

 

tenho de ter ob_start porque se nao da erro...

 

meti assim

 

<?php
ob_start(); 

include ('../Includes/Conexao.php');
require_once('funcoes.php');

$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string($_POST['password']);

if (!empty($_POST) && (empty($_POST['email']) || empty($_POST['password']))) {

echo "<script> alert('O email e a password sao obrigatorios!');</script> <meta http-equiv='refresh' content='0; url=inicio.php'>"; exit;
}

$sql = "SELECT `id`,`nome`,`email`,`idade` FROM `registos` WHERE (`email` = '". $email."') AND (`password` = MD5('".$password."'))";
$query = mysql_query($sql) or die(mysql_error()); 
if (mysql_num_rows($query) != 1) {

echo "<script> alert('Verifica se prenches-tes correctamente todos os dados!');</script> <meta http-equiv='refresh' content='0; url=inicio.php'> "; exit;
} else {

$resultado = mysql_fetch_assoc($query);

if (!isset($_SESSION)) session_start();
$_SESSION['id'] = $resultado['id'];
$_SESSION['u_email'] = $resultado['email'];
$_SESSION['u_nome'] = $resultado['nome'];

if(isset($_POST['lembrar'])){
 setcookie("lembrar", $email,  time()+(60*60*24*365)); 
}

header("Location: ouvinte/index.php?id={$_SESSION['id']}&nome={$_SESSION['u_nome']}"); exit;
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ob_start porque se nao da erro... :::::> que erro?

 

quanto a MD5

$S = md5($password);
$query = mysql_query("SELECT * FROM registos WHERE email=\"$email\" AND password=\"$S\""); 

if(mysql_num_rows($query) != 0) {


$resultado = mysql_fetch_assoc($query);

if (!isset($_SESSION)) session_start();
$_SESSION['id'] = $resultado['id'];
$_SESSION['u_email'] = $resultado['email'];
$_SESSION['u_nome'] = $resultado['nome'];

if(isset($_POST['lembrar'])){
 setcookie("lembrar", $email,  time()+(60*60*24*365)); 
}

echo "<script> alert('Verifica se prenches-tes correctamente todos os dados!');</script> <meta http-equiv='refresh' content='0; url=inicio.php'> "; exit;
} else {

header("Location: ouvinte/index.php?id={$_SESSION['id']}&nome={$_SESSION['u_nome']}"); exit;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja funciona ;) o problema era dos caracteres so tinha 15 meti 32 como o victor disse e depois meti o que o leozito disse

$sql = "SELECT `id`,`nome`,`email`,`idade` FROM `registos` WHERE (`email` = '". $email."') AND (`password` = MD5('".$password."'))";

ja funciona...

 

Cristiano este é o erro que da se não tenho o ob_start();

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Includes/Conexao.php:12) in CriaLogin.php on line 26

Warning: Cannot modify header information - headers already sent by (output started at Includes/Conexao.php:12) in CriaLogin.php on line 32

Warning: Cannot modify header information - headers already sent by (output started at Includes/Conexao.php:12) in CriaLogin.php on line 35

 

Bem agora tenho mais uma pergunta como eu ja tenho alguns cadastros no site e as senhas dos users nao estao coadificadas existe maneira de as coadificar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você souber quais registros são você pode fazer um update

update `registos` set `password` = MD5(`password`) WHERE ..

 

mas se você inseriu o password em md5 em um campo de 15 caracteres, não tem jeito, cortou pedaço da string

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso aqui não é um por um

update `registos` set `password` = MD5(`password`) WHERE ..

 

basta colocar algum critério que atenda aos 90, ou se não pelo menos a maioria

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.