Cadastro e Login - #32 Esqueci minha senha II
26/12/2018Vamos finalizar o sistema de envio de senhas perdidos utilizando o php e a ClassMail.
Pasta temp
No nosso sistema criaremos a pasta temp que abrigará os arquivos temporários que serão modificados para envio ao servidor online, tais como o arquivo config.php, javascript e outros arquivos que necessitem de mudanças para o servidor online.
Ajuste na variável token
Vamos precisar fazer uma pequena modificação no arquivo variables.php alterando a variável token. Ela ficará da seguinte maneira:
if(isset($_POST['token'])){$token=$_POST['token'];}else{$token=bin2hex(random_bytes(64));}
Controller Confirmação Senha
Vamos criar o controllerConfirmacaoSenha.php:
<?php
$validate=new \Classes\ClassValidate();
$confirmation=new \Models\ClassCadastro();
if($validate->validateCaptcha($gRecaptchaResponse)){
if($validate->validateConfSenha($senha,$senhaConf)) {
if($validate->validateStrongSenha($senha)) {
if($confirmation->confirmationSen($email,$token,$hashSenha)) {
echo "<script> alert('Senha foi alterada com sucesso!');</script>";
}else {
echo "<script> alert('Não foi possível verificar seus dados!');</script>";
}
}else{
echo "<script> alert('Senha fraca!');</script>";
}
}else{
echo "<script> alert('Senha diferente de confirmação de senha!');</script>";
}
}else{
echo "<script> alert('Captcha Inválido!');</script>";
}
echo "<script> window.location.href='".DIRPAGE."';</script>";
Model ClassCadastro
Vamos criar o método
#Verificar a confirmação de senha
public function confirmationSen($email,$token,$hashSenha)
{
$b=$this->selectDB(
"*",
"confirmation",
"where email=? and token=?",
array(
$email,
$token
)
);
$r=$b->rowCount();
if($r >0){
$this->deleteDB(
"confirmation",
"email=?",
array($email)
);
$this->updateDB(
"users",
"senha=?",
"email=?",
array(
$hashSenha,
$email
)
);
return true;
}else{
return false;
}
}
Posts Relacionados
Cadastro e Login - #31 Esqueci minha senha I
Na vídeo-aula de hoje iremos criar nossa página relativa a Esqueci Minha Senha do sistema de login. Para isso, utilizaremos o PHP e a recém criada ClassMail.
Cadastro e Login - #33 Logout and Permitions
Nessa vídeo-aula vamos trabalhar com a parte de logout para o encerramento das sessões do sistema e retirada do usuário da área restrita e níveis de acesso.