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

Byter

Recuperação de Password Passada...

3 mensagens neste tópico

Viva,

Tenho uma coisa que fiz mais um amigo para recuperar passwords mas há algum problema.

Ele faz tudo bem, faz o get do user com a pass em md5 no Link e o  nome do user, e se coincidir com o que esta na db ele deixa criar nova pass.

Ele faz tudo bem, mas eu queria que o link expirasse, precebem?

Por isso quando o user vai recuperar a pass eu faço isto:

$dateasdaa= time();
   $query1 = "UPDATE ".$tabelaalojamento." SET timestamp='".$dateasdaa."' where nome='".$username."';  ";   
  mysql_query($query1) or print(mysql_error());  

Depois recebe se o email e vai ter a pagina de recuperação seguinte, onde mesmo com o codigo se já tiver passado 3600 do time que esta na DB ele continua a deixar recuperar:

<?

$ress=mysql_query("SELECT * FROM ".$tabelaalojamento." WHERE (nome='$user')") or die(mysql_error());
$rows=mysql_fetch_array($ress);

$hora2 = $rows["timestamp"];
$to = $hora2-time();
if($to >= 3600){


echo "Link Expirado! Horas";
} else { ?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se será o problema e, antes de qualquer coisa, começa a fazer var_dump() das variaveis como a $hora2, $to e time() e compara os valores manualmente, pode ser que vejas algo engraçado.

Assim à primeira vista, o time() devolve o timestamp actual e o $hora2 tem o timestamp de quando o mail foi criado, logo, devia ser time() - $hora2 e não o contrario. Isso vai dar um valor negativo e logo o link não foi expirado.

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