Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Form_validation - Message: Call to undefined function set_value()

O POST FOI FEITO NO ITEM ERRADO (CODEIGNITER I AO INVÉS DA PARTE II), TENTEI ARRUMAR, MAS NÃO ACHEI OPÇÃO NEM DE EXCLUIR E NEM DE RECLASSIFICAR.

Meu login:

class Login extends CI_Controller{
    public function index($dados = NULL){
        $this->load->view_template('login/login', $dados);
    }

    public function autenticar(){
        $this->load->library('form_validation');
        $this->load->model("login_model");

        $this->form_validation->set_rules("login", "login", "trim|required|min_length[11]");
        $this->form_validation->set_rules("password", "password", "required");
        $this->form_validation->set_error_delimiters("<small class='form-text text-danger'>", "</small>");

        $formValido = $this->form_validation->run();

        if($formValido){
            $login = $this->input->post('login');
            $password = $this->input->post('password');

            $this->load->library('ldap');
            $loginSuccess = $this->ldap->ldap_auth($login, $password);

            if($loginSuccess){
                $this->session->set_userdata("usuario_logado", $login); //mas também pode ser $this->session->set_userdata(array("usuario_logado" => $login));
                redirect('/');
            }else{
                $this->session->set_flashdata("danger", 'Usuário e/ou senha inválida');
                $this->index();    
            }    
        } else{
            $this->index();
        }
    }

    public function logout(){
        $this->session->unset_userdata("usuario_logado");
        $this->session->set_flashdata("success", "Deslogado com sucesso");
        redirect('/');
    }
}

Meu Auth

function autoriza(){
    $ci = get_instance();
    $usuarioLogado = $ci->session->userdata("usuario_logado");
    if(!$usuarioLogado){
        $ci->session->set_flashdata("danger", "Você precisa estar logado");
        $ci->load->view_template('login/login');
    }
    return $usuarioLogado;
}

Outro controller...

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

class Administracao extends CI_Controller {

    public function formUsuarioExterno(){
        autoriza();
        $this->load->view_template('administracao/add_usuario_externo');
    }
...

Erro:

A PHP Error was encountered
Severity: Error

Message: Call to undefined function set_value()

Filename: login/login.php

Line Number: 8

Backtrace:

Por que ocorre esse erro?

E outra dúvida, quala diferença do redirect para o $this->load->view...

Quando usar um e quando usar outro?

1 resposta
solução!

Corrigi o problema inserindo o 'form' no autoload de helper.

Não tinha adicionado ele no helper ainda pois não construí os forms com helpers.

Meu autoload:

$autoload['helper'] = array('url', 'auth', 'form');