Ir para conteúdo

POWERED BY:

Arquivado

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

Alan Dantas

Sistema de Login área para recuperação de senha em PHP.

Recommended Posts

Olá galera estou com muita dificuldade em fazer a parte da recuperação de senha do meu sistema de login, será que alguem pode me dar algumas dicas de como criar esse conteúdo??

Desde já agradeço a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Você pode colocar um campo de e-mail do usuário, e enviar um link de recuperação de Senha para seu email, como é por exemplo as Redes Sociais. Qual é a sua dúvida?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria como eu citei logo acima com envio e-mail a usuário. Você tem algum conhecimento em PHP?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com o IF já da para fazer algo bem simples.

 

Se existir um registro no banco de dados com determinado e-mail; enviar link de recuperação para o mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce pode fazer isso

<?php
		if(isset($_POST['acao']) && $_POST['acao'] == 'recuperar'):
			$email = strip_tags(filter_input(INPUT_POST, 'emailRecupera', FILTER_SANITIZE_STRING));

			$verificar = mysql_query("SELECT `email` FROM `usuarios` WHERE email = '$email'");
			if(mysql_num_rows($verificar) == 1){
				$codigo = base64_encode($email);
				$data_expirar = date('Y-m-d H:i:s', strtotime('+1 day'));

				$mensagem = '<p>Recebemos uma tentativa de recuperação de senha para este e-mail, caso não tenha sido você,
					desconsidere este e-mail, caso contrário clique no link abaixo<br /> 
					<a href="http://vitorrc.com/recuperar/recuperar.php?codigo='.$codigo.'">Recuperar Senha</a></p>';
				$email_remetente = 'contato@vitorrc.com';

				$headers = "MIME-Version: 1.1\n";
				$headers .= "Content-type: text/html; charset=iso-8859-1\n";
				$headers .= "From: $email_remetente\n";
				$headers .= "Return-Path: $email_remetente\n"; 
				$headers .= "Reply-To: $email\n"; 

				$inserir = mysql_query("INSERT INTO `codigos` SET codigo = '$codigo', data = '$data_expirar'");
				if($inserir){
					if(mail("$email", "Assunto", "$mensagem", $headers, "-f$email_remetente")){
						echo 'Enviamos um e-mail com um link para recuperação de senha, para o endereço de e-mail informado!';
					}
				}
			}
		endif;
		?>

Formulario de recuperação:
<form method="post" action="">
<input type="text" name="emailRecupera" value="" />
				<input type="hidden" name="acao" value="recuperar" />
				<input type="submit" value="Recuperar Senha" />
</form

Assim ele cria um codigo em base64, e envia pra seu email um link! Ao clicar no link voce cria uma pagina que vai verificar se o link ja expirou ou nao, depois decripta o base64, ve o email que tava encriptado nele e altera a senha no BD'-'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente como o do Vitor. No GitHub tenho um repositório de um sistema de login orientado a objetos que fiz, mais tarde adiciono a opção para recuperar senha e posto o link aqui.

 

^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vo posta o codigo todo, É APENAS UM TESTE, VE SE DA CERTO AI!

 

 

index.php

<html>
<?php
	date_default_timezone_set("America/Sao_Paulo");

ini_set('smtp_port', '587');
	mysql_connect('localhost', 'root', '');
	mysql_select_db('videoaula');
?>
	<head>
		<title>Recuperar Senha</title>
	</head>

	<body>
		<?php
		if(isset($_POST['acao']) && $_POST['acao'] == 'recuperar'):
			$email = strip_tags(filter_input(INPUT_POST, 'emailRecupera', FILTER_SANITIZE_STRING));

			$verificar = mysql_query("SELECT `email` FROM `usuarios` WHERE email = '$email'");
			if(mysql_num_rows($verificar) == 1){
				$codigo = base64_encode($email);
				$data_expirar = date('Y-m-d H:i:s', strtotime('+1 day'));

				$mensagem = '<p>Recebemos uma tentativa de recuperação de senha para este e-mail, caso não tenha sido você,
					desconsidere este e-mail, caso contrário clique no link abaixo<br /> 
					<a href="http://www.downsmaster.com/recuperar/recuperar.php?codigo='.$codigo.'">Recuperar Senha</a></p>';
				$email_remetente = 'contato@downsmaster.com';

				$headers = "MIME-Version: 1.1\n";
				$headers .= "Content-type: text/html; charset=iso-8859-1\n";
				$headers .= "From: $email_remetente\n";
				$headers .= "Return-Path: $email_remetente\n"; 
				$headers .= "Reply-To: $email\n"; 

				$inserir = mysql_query("INSERT INTO `codigos` SET codigo = '$codigo', data = '$data_expirar'");
				if($inserir){
					if(mail("$email", "Assunto", "$mensagem", $headers, "-f$email_remetente")){
						echo 'Enviamos um e-mail com um link para recuperação de senha, para o endereço de e-mail informado!';
					}
				}
			}
		endif;
		?>
		<form action="" method="post" enctype="multipart/form-data">
			<?php
				if(isset($_GET['recuperar']) && $_GET['recuperar'] == 'sim'){
			?>
				<input type="text" name="emailRecupera" value="" />
				<input type="hidden" name="acao" value="recuperar" />
				<input type="submit" value="Recuperar Senha" />
				<a href="index.php">Logar</a>
			<?php }else{?>
				<input type="text" name="emailLoga" value="" />
				<input type="password" name="senhaLoga" value="" />
				<input type="hidden" name="acao" value="logar" />
				<input type="submit" value="Logar" />
				<a href="?recuperar=sim">Esqueceu sua senha?</a>
			<?php }?>
		</form>
	</body>
</html>

recuperar.php

<?php
	mysql_connect('localhost', 'root', '');
	mysql_select_db('videoaula');


if(isset($_GET['codigo'])){
	$codigo = $_GET['codigo'];
	$email_codigo = base64_decode($codigo);

	$selecionar = mysql_query("SELECT * FROM `codigos` WHERE codigo = '$codigo' AND data > NOW()");
	if(mysql_num_rows($selecionar) >= 1){
		if(isset($_POST['acao']) && $_POST['acao'] == 'mudar'){
			$nova_senha = $_POST['novasenha'];

			$atualizar = mysql_query("UPDATE `usuarios` SET `senha` = '$nova_senha' WHERE `email` = '$email_codigo'");
			if($atualizar){
				$mudar = mysql_query("DELETE FROM `codigos` WHERE codigo = '$codigo'");
				echo 'A senha foi modificada com sucesso!';
			}
		}
?>

<h1>Digite a senha nova</h1>
<form action="" method="post" enctype="multipart/form-data">
<input type="password" name="novasenha" value="" />

<input type="hidden" name="acao" value="mudar" />
<input type=

<?php
	}else{
		echo '<h1>Desculpe mais este link já expirou!</h1>';
	}
}
?>
"submit" value="Mudar Senha" />
</form>

Voce pode partir desse codigo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém pode me ajudar como posso utilizar essa rotina no meu código????

 

 

 

 

<?php
$page="V8 - Login do usário";
include("header.php");
?>
<div id="cadastrar"><a href="cadastro.php" title="Cadastre-se e venha fazer parte de nossa equipe!">Cadastre-se »</a></div>
<div id="login" class="form bradius">
<div class="message" style="<?php echo $display;?>"><?php echo $msg;?></div>
<div class="logo"><a href="<?php echo $home;?>" title="<?php echo $title;?>"><img src="css/imagens/logo.png" alt="<?php echo $title;?>" title="<?php echo $title;?>" width="250" height="85"/></a></div>
<div class="acomodar">
<form action="index.php?acao=logar" method="post">
<label for="email">E-mail: </label><input id="email" type="text" class="txt bradius" name="email" value=""/>
<label for="senha">Senha: </label><input id="senha" type="password" class="txt bradius" name="senha" value=""/>
<input type="submit" class="sb bradius" value="Entrar"/>
</form>
<!--acomodar-->
</div>
<!--login-->
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém pode me ajudar como posso utilizar essa rotina no meu código????

Já pensou que revolução seria você mesmo se ajudar??? Pois é... comece ENTENDENDO o que todo mundo está postando... não adianta ficar postando "alguém pode me ajudar" se você mesmo não se ajuda, o pessoa já te mostrou tudo, agora cabe a você usar a cabeça e implementar a lógica à sua necessidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Alan Dantas, posso tentar lhe ajudar. Meu e-mail é joaogustavo.b@hotmail.com, envia lá seu script que já tem ou sua dúvida em relação ao Código do Vitor postou.

 

Fico no Aguardo ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o ESerra disse. Não é dificil isso, só tem que colocar a cabeça para pensar um pouco. O código em si é o básico, só precisa melhorar seu modo de pensar. :-D

 

Dica: Pense menos em recuperar a senha e mais IF e ELSE.

 

Se emailFormulario = emailDB então : Enviar enviar e-mail para emailDB se não voltar para login.php

 

Procure tentar fazer a base e mande suas dúvidas por parte, fica mais fácil de ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém pode me ajudar, criei a rotina certinha para recuperação da senha, o link é enviado para o e-mail informado, porem quando você clica no link ele aparece a mensagem dizendo que o link já expirou mesmo eu tendo acado de receber o link, oque pode está gerando isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! Por gentileza, me envie um email (joaogustavo.b@hotmail.com) com o seu Script. Posso tentar lhe Ajudar ;)

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.