Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, To desenvolvendo um sisteminha para redefinicao de senha,
estou seguinda a logica já indicada por alguns posters: usuário digita o mail, se email constar na base de dados, envia o link com um numero aleatorio, para que ele possa redefinir a senha.
temos o arquivo recupera.html ( solicitando o email "basico" )
no arquivo redefine.php tem:
consulta se há email existente, se houver gera uma chave aleatoria.
$email = isset($_POST["email"]) ? $_POST["email"] : "";
$consulta = mysql_query("SELECT * FROM cadastro WHERE email = '$email'");
if (mysql_num_rows($consulta == 0 )) {
echo "<script language='Javascript'>
alert('Não encontramos o seu email na base de dados!');
location.href='recupera.php';
</script>";
}
$key = rand(); // só essa funcao parar gerar o numero esta ok?
/ no corpo do email coloco o link para o usuario redefinir a senha /
http://redefineasenha.com.br?key=$key
A dúvida soberba é como dar a funcionalide a esse numero aleatorio, ou seja, para quê colocar o numero aleatorio?
E como posso fazer essa pagina expirar dentro de X minutos?
Consegui fazer a lógica aqui. Obrigado!
Cara, esse número aleatório que você diz seria um token, ele serve pra garantir que é o dono da conta (que recebeu esse token por e-mail) que está redefinindo a senha.
Se você solicitar só o e-mail como você está fazendo, qualquer pessoa que digitar o seu e-mail poderá alterar a sua senha, já com o token você precisa recebê-lo primeiro em seu e-mail para só então conseguir alterar a senha.
Na hora que o usuário solicitar a redefinição de senha você cria um token (pode ser um hash md5 ou sha1 por exemplo), então você armazena esse token em uma tabela no banco de dados específica de tokens (se preferir pode ser a mesma tabela de usuários), daí você envia esse token para o e-mail do usuário (pode ser no próprio link - http://www.seusite.com.br/redefinir-senha.php?token=123456).
Quanto o usuário receber o e-mail com o token ele vai clicar no link contendo o token ou digitar o token manualmente em seu site, então você verifica se existe esse token criado no banco de dados e se existir permite a alteração da senha.
Com relação a expiração, basta você armazenar no banco de dados a data em que o token foi criado e verificar se já passou o tempo aceitado.