Redefinição de senha em PHP
Redefinição de senha em PHP. Você sabe como fazer?
Olá Pessoal, esse é mais um vídeo com passo a passo do Desenvolvimento de Aplicações Web.
Hoje a gente vai aprender a desenvolver um recurso completo para Redefinição de senha em PHP.
Vamos gerar um link com uma chave de segurança, e depois fazer a validação do usuário e da chave para a redefinição da senha.
Para fazer isso, vamos usar como base uma aplicação de login, que fizemos na série de SQL Injection, onde vimos como fazer a autenticação do usuário de maneira segura. Se quiser ver esse post é só acessar Entendendo o SQL Injection.
Espero que esse conteúdo seja útil para você, e se você gostar, compartilha com seus amigos, eles também podem estar precisando de ajuda com o Desenvolvimento Web e a gente pode dar uma mãozinha. 🙂
Então…
curte, compartilha, deixa um comentário, enfim, participe e deixe a sua opinião.
Depois, acessa o Facebook, http://www.facebook.com/alexrosa.page, e deixa seu like na Fanpage.
Tem bastante novidades por lá também.
Vou deixar, no final da página, logo depois do vídeo, o código das funções que criamos no tutorial.
Até mais e bons estudos.
[VÍDEO] Como fazer redefinição de senha em PHP
conecta.php
<?php include_once 'config.php'; class conecta extends config{ var $pdo; function __construct(){ $this->pdo = new PDO('mysql:host='.$this->host.';dbname='.$this->db, $this->usuario, $this->senha); } function login($email, $senha){ $stmt = $this->pdo->prepare("SELECT * FROM login WHERE email = :email AND senha = :senha"); $stmt->bindValue(":email",$email); $stmt->bindValue(":senha",sha1($senha)); $run = $stmt->execute(); $rs = $stmt->fetchAll(PDO::FETCH_ASSOC); return $rs; } function geraChaveAcesso($email){ $stmt = $this->pdo->prepare("SELECT * FROM login WHERE email = :email"); $stmt->bindValue(":email",$email); $run = $stmt->execute(); $rs = $stmt->fetch(PDO::FETCH_ASSOC); if($rs){ $chave = sha1($rs["id"].$rs["senha"]); return $chave; } } function checkChave($email,$chave){ $stmt = $this->pdo->prepare("SELECT * FROM login WHERE email = :email"); $stmt->bindValue(":email",$email); $run = $stmt->execute(); $rs = $stmt->fetch(PDO::FETCH_ASSOC); if($rs){ $chaveCorreta = sha1($rs["id"].$rs["senha"]); if($chave == $chaveCorreta){ return $rs["id"]; } } } function setNovaSenha($novasenha,$id){ $stmt = $this->pdo->prepare("UPDATE login SET senha = :novasenha WHERE id = :id"); $stmt->bindValue(":novasenha",sha1($novasenha)); $stmt->bindValue(":id",$id); $run = $stmt->execute(); } } ?>
PAULO PONTES
poderia aumentar a fonte do editor ou editar o vídeo ampliando a parte do código que está explicando
Alex
Os próximos vídeos já aumento a fonte do editor. Valew. 🙂
Jose Henrique da Silva
Olá boa tarde, gostei muito do seu vídeo explicando muito bom e dinâmico.
Eu queria saber algo diferente disso… Se você sabe algum Framework que manipule dados dentro de uma pagina administrativo que consiga fazer o seguinte… que selecione usuários para uma pagina temporária apenas para imprimir. sem mais para o momento agradeço.
João Victor Barreto
Você pode me ajudar com esse erro no código….
Fatal error: Uncaught Error: Call to undefined method PDO::geraChaveAcesso() in
Alex
Hmmm. verifique se tem acesso ao Banco de dados e se está configurado corretamente.
rubens
Alex, estou tentando implementar o seu tutorial para alterar a senha esquecida pelo usuario porém com a criptografia password_hash não está funcionando. sempre ele modifica o hash enviado pelo id do usuario + senha do usuario e não retorna o hash correspondente. já tentou fazer algo parecido?