Boas estou com um problema o meu sistema de login funciona com hashes (não de password) para manter o login quando eu verifico o login
Tudo ok até chegar á parte do hasing algo simples como isto
md5($current_date . $browser . $user);
dá este output af665d85a7c82342c9f16184b78a9954
visto que o correto era
3f8935281e7e643279541062a093f094
A string real de que estamos a falar é: 16/03/2014 20:37:21Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.149 Safari/537.36 OPR/20.0.1387.77pm.cavaleiro@hotmail.com
Isto sem espaços no inicio e no final da string, e o script de verificação ao executar a verificação executa-a correctamente gerando correntamente o hash logo n consigo manter o login. Um pormenor o inicial é o que esta a falhar o que define os cookies e esse script php é chamado pela função $.post todos os paramentros foram "trimados". Enquanto o script de verificação vai diretamente aos cookies
CODIGO:
função post
Código (jQuery):
Código (PHP):
Código (PHP):
Tudo ok até chegar á parte do hasing algo simples como isto
md5($current_date . $browser . $user);
dá este output af665d85a7c82342c9f16184b78a9954
visto que o correto era
3f8935281e7e643279541062a093f094
A string real de que estamos a falar é: 16/03/2014 20:37:21Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.149 Safari/537.36 OPR/20.0.1387.77pm.cavaleiro@hotmail.com
Isto sem espaços no inicio e no final da string, e o script de verificação ao executar a verificação executa-a correctamente gerando correntamente o hash logo n consigo manter o login. Um pormenor o inicial é o que esta a falhar o que define os cookies e esse script php é chamado pela função $.post todos os paramentros foram "trimados". Enquanto o script de verificação vai diretamente aos cookies
CODIGO:
função post
Código (jQuery):
$.post('php/login.php', {usr:usr,pw:pw,browser:brw,dte:currdate},function(res){...});
função php de loginCódigo (PHP):
$user = trim(mysql_real_escape_string(stripslashes($_POST['usr'])));
$browser = trim(mysql_real_escape_string(stripslashes($_POST['brw'])));
$current_date = trim(mysql_real_escape_string(stripslashes($_POST['dte'])));
//....
$h = md5($current_date . $browser . $user); //output errado
função de verificação$browser = trim(mysql_real_escape_string(stripslashes($_POST['brw'])));
$current_date = trim(mysql_real_escape_string(stripslashes($_POST['dte'])));
//....
$h = md5($current_date . $browser . $user); //output errado
Código (PHP):
$cookie_user = stripslashes($_COOKIE['e']);
$cookie_hash = stripslashes($_COOKIE['h']);
$cookie_login_date = stripslashes($_COOKIE['d']);
$browser = $_SERVER['HTTP_USER_AGENT'];
//....
$h = md5($cookie_login_date . $browser . $cookie_user); //output correto
Já me fartei de alterar os scripts e nada? Alguma ideia?
$cookie_hash = stripslashes($_COOKIE['h']);
$cookie_login_date = stripslashes($_COOKIE['d']);
$browser = $_SERVER['HTTP_USER_AGENT'];
//....
$h = md5($cookie_login_date . $browser . $cookie_user); //output correto