Ir para conteúdo

POWERED BY:

Arquivado

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

Igor Pereira

[Resolvido] Redefinir Senha

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

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.