Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Cadastro e Login - #32 Esqueci minha senha II

26/12/2018

Vamos 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;
    }
}
Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

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.
Saiba mais!
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.
Saiba mais!
Cadastro e Login
Neste curso vamos aprender a criar um sistema completo de cadastro e login.
Saiba mais!