Ir para conteúdo

Arquivado

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

Worn

Conectar level

Recommended Posts

Olá galera estou elaborando um sistema aqui, mais estou com um probleminha na parte do login bem. Queria colocar que usuários com nivel 2 ou maior que 2 ou seja 3 conseguisse logar no painel porém não estou conseguindo efetuar essa ação veja como ta;

$login = new Login (3);

eu tentei colocar assim

$login = new Login >= 3;

porém acusa isso

Login.class.php

Erro na Linha: #16 :: Missing argument 1 for Login::__construct(), called in C:\wamp64\www\lento\painel.php on line 32 and defined

Erro na Linha: #17 :: Undefined variable: Level

painel.php

Erro na Linha: #32 :: Object of class Login could not be converted to int

login.php

 $login = new Login (3);

                $dataLogin = filter_input_array(INPUT_POST, FILTER_DEFAULT);
                if (!empty($dataLogin['AdminLogin'])):

                    $login->ExeLogin($dataLogin);
                    if (!$login->getResult()):
                        JVErro($login->getError()[0], $login->getError()[1]);
                    else:
                        header('Location: painel.php');
                    endif;

                endif;
                 $get = filter_input(INPUT_GET, 'exe', FILTER_DEFAULT);
                if (!empty($get)):
                    if ($get == 'restrito'):
                        JVErro('<b>Oppsss:</b> Acesso negado. Favor efetue login para acessar o painel!', JV_ALERT);
                    elseif ($get == 'logoff'):
                        JVErro('<b>Sucesso ao deslogar:</b> Sua sessão foi finalizada. Volte sempre!', JV_ACCEPT);
                    endif;
                endif; 

login.class.php

<?php


class Login {

    private $Level;
    private $Email;
    private $Senha;
    private $Error;
    private $Result;

    /**
     * <b>Informar Level:</b> Informe o nível de acesso mínimo para a área a ser protegida.
     * @param INT $Level = Nível mínimo para acesso
     */
    function __construct($Level) {
        $this->Level = (int) $Level;
    }


    public function ExeLogin(array $UserData) {
        $this->Email = (string) strip_tags(trim($UserData['user']));
        $this->Senha = (string) strip_tags(trim($UserData['pass']));
        $this->setLogin();
    }


    public function getResult() {
        return $this->Result;
    }

    public function getError() {
        return $this->Error;
    }


    public function CheckLogin() {
        if (empty($_SESSION['userlogin']) || $_SESSION['userlogin']['user_level'] < $this->Level):
            unset($_SESSION['userlogin']);
            return false;
        else:
            return true;
        endif;
    }

    /*
     * ***************************************
     * **********  PRIVATE METHODS  **********
     * ***************************************
     */

    //Valida os dados e armazena os erros caso existam. Executa o login!
    private function setLogin() {
        if (!$this->Email || !$this->Senha || !Check::Email($this->Email)):
            $this->Error = ['Informe seu E-mail e senha para efetuar o login!', JV_INFOR];
            $this->Result = false;
        elseif (!$this->getUser()):
            $this->Error = ['Os dados informados não são compatíveis!', JV_ALERT];
            $this->Result = false;
        elseif ($this->Result['user_level'] < $this->Level):
            $this->Error = ["Desculpe {$this->Result['user_name']}, você não tem permissão para acessar esta área!", JV_ERROR];
            $this->Result = false;
        else:
            $this->Execute();
        endif;
    }

    //Verifica usuário e senha no banco de dados!
    private function getUser() {
        $this->Senha = md5($this->Senha);

        $read = new Read;
        $read->ExeRead("user_pj", "WHERE user_email = :e AND user_password = :p", "e={$this->Email}&p={$this->Senha}");

        if ($read->getResult()):
            $this->Result = $read->getResult()[0];
            return true;
        else:
            return false;
        endif;
    }

    //Executa o login armazenando a sessão!
    private function Execute() {
        if (!session_id()):
            session_start();
        endif;

        $_SESSION['userlogin'] = $this->Result;

        $this->Error = ["Olá {$this->Result['user_name']}, seja bem vindo(a). Aguarde redirecionamento!", JV_ACCEPT];
        $this->Result = true;
    }

}
 

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.