Ir para conteúdo

Arquivado

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

Saymon Souza

Erro de session na validação de nível do usuário CodeIgniter

Recommended Posts

Bom galera estou fazendo um painel simples mais com nível de usuário onde eu passo para a session uma array com três valores, até ai tudo bem, as funções que validam o formulário, valida o usuário do banco, se o usuário está logado ou não, função que recupera os dados da tabela validando pela session funcionam perfeitamente mais quando criei a função que valida o nível do usuário para redirecionar cada um para seu controller ele exibe o seguinte erro:

FRHAV.png

 

login_controller.php

function __construct()
{
    parent::__construct();
    $this->load->helper(array('form', 'url'));
    $this->load->library('form_validation');
    $this->load->model('login_model');
    $this->load->model('crud_model');
}

public function index(){
    $this->load->view('login_view');
}


public function logando()
{
    $regras = array(
                array(
                    'field' => 'usuario_login',
                    'label' => 'Usuário',
                    'rules' => 'trim|required|min_length[3]|max_length[32]'
                    ),
                array(
                    'field' => 'senha_login',
                    'label' => 'Senha',
                    'rules' => 'trim|required|min_length[6]|max_length[32]'
                    )
                );

    $this->form_validation->set_rules($regras);
    if($this->form_validation->run() != true || $this->login_model->validate() == FALSE){
        $this->load->view('login_view');
    }else{
        redirect('admin/admin_controller');
    } 
  } 
}

login_model.php

class Login_model extends CI_Model {

function validate()
{
    $campo['user'] = $this->input->post('usuario_login');
    $campo['pass'] = $this->input->post('senha_login');

    $where = array(
            'login_user'    =>  $campo['user'],
            'senha_user'    =>  md5($campo['pass']),
            'status_user'   =>  '1'
        );

    $this->db->where($where);
    $query = $this->db->get('usuarios');

    if($query->num_rows == 1)
    {
        $row = $query->row_array();//PEGA OS DADOS DO USUARIO COMPARADO COM OS CAMPOS

        $sess_validate  =   array(
            'session_logada'    =>  TRUE,//SE ELES ESTÁ LOGADO OU NÃO
            'session_user'      =>  $row['login_user'],//O NOME DE USUÁRIO QUE VEM DO BANCO
            'session_nivel'     =>  $row['nivel_user']//O NÍVEL QUE VEM DO BANCO
        );

        $this->session->set_userdata($sess_validate);

        return TRUE;

    }else{
        $this->session->set_flashdata('user_erro_model', 'Usuário inexistente ou inativo');
        redirect(current_url());
        return FALSE;
    }
}

public function is_logado()
{
    if (trim($this->session->userdata('session_logada')) != TRUE)
    {
        redirect(index_page());
    }
}

public function is_nivel()
{
    if($this->session->userdata('session_nivel') == 1){
        redirect('admin/admin_controller');
    }else{
        redirect('user/user_controller');
    }
}

public function is_dados_user()
{
    $sess['user'] = $this->session->userdata('session_user');

    $where = array(
            'login_user'    =>  $sess['user']
        );

    $this->db->where($where);
    $query = $this->db->get('usuarios');

    $row = $query->row_array();

    if($query->num_rows > 0) return $row;

  }
}

admin_controller.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Admin_controller extends CI_Controller
{
function __construct()
{
    parent::__construct();
    $this->load->model('login_model');
    $this->login_model->is_logado();
    $this->login_model->is_nivel();
    $this->login_model->is_dados_user();
}

user_controller.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User_controller extends CI_Controller {

function __construct()
{
    parent::__construct();
    $this->load->model('login_model');
    $this->login_model->is_logado();
    $this->login_model->is_nivel();
    $this->login_model->is_dados_user();
}

public function index()
{
    $this->load->view('user');
}

public function sair()
{
    if($this->session->userdata('session_logada') == FALSE){
        redirect(index_page());
    }else{
        $this->session->sess_destroy();
        redirect(index_page());
    }
}

}

Já tentei mudar as configurações do wamp server e nada :(

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.