Php codeigniter未在另一个控制器中检索会话

Php codeigniter未在另一个控制器中检索会话,php,codeigniter,session,Php,Codeigniter,Session,我完全被困在这里了,我创建了一个控制器登录名,它可以获取、设置规则和DB身份验证,并在代码结束时设置会话。 此外,我还有另一个控制器仪表板,它显示仪表板,还必须使用会话来查看是否设置了会话,如果真正的用户可以使用控制器,则重定向到登录页面。就这样 但我无法在仪表板中获取会话,我应该在这里做什么 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Login extends CI_Contr

我完全被困在这里了,我创建了一个控制器登录名,它可以获取、设置规则和DB身份验证,并在代码结束时设置会话。 此外,我还有另一个控制器仪表板,它显示仪表板,还必须使用会话来查看是否设置了会话,如果真正的用户可以使用控制器,则重定向到登录页面。就这样 但我无法在仪表板中获取会话,我应该在这里做什么

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

class Login extends CI_Controller
{

    /**
     * Login constructor.
     */
    public function __construct()
    {
        parent::__construct();

        //Load Form helper
        $this->load->helper('form');

        //Load form validation library
        $this->load->library('form_validation');
    }

    /**
     *Display Login page
     */
    public function index()
    {

        $title['title'] = 'Admin login';
        $this->load->view('login', $title);
    }


    /**
     *
     * Set rules for authentication
     *
     * @return bool
     */
    public function rules()
    {

        $rules = array(
            array(
                'field' => 'username',
                'label' => 'Username',
                'rules' => 'trim|required|xss_clean'
            ),
            array(
                'field' => 'password',
                'label' => 'Password',
                'rules' => 'trim|required|xss_clean'
            ),
            array(
                'field' => 'remember',
                'label' => 'Remember',
                'rules' => 'trim|int|xss_clean'
            )
        );

        $this->form_validation->set_rules($rules);

        if ($this->form_validation->run() != FALSE) {
            $this->authentication();
        } else {

            $title['title'] = 'Admin login';
            $this->load->view('login', $title);
        }
    }

    /**
     * Check if user is exist
     */
    public function authentication()
    {

        $data = array(
            'username' => $this->input->post('username', true),
            'password' => $this->input->post('password', true)
        );

        $this->load->model('userData');
        if ($this->userData->getUserData($data) == FALSE) {

            $title['title'] = 'Admin login';
            $this->load->view('login', $title);
        } else {

            $this->set_session($data);
            redirect('dashboard/index');
        }

    }

    /**
     * @param $data username|password
     */
    public function set_session($data)
    {

        $session_data = array(
            'username' => $data['username'],
            'login' => true
        );

        $this->session->set_userdata('auth', $session_data);
    }

}

您的做法是错误的。您无法访问函数外部的
$\u post
值。您也不需要
authentication()
函数

当您调用此函数时,
if($this->form\u validation->run()!=FALSE)
如果通过,则将``authentication()`函数代码添加到此处。然后可以设置会话


代码示例

$this->form_validation->set_rules($rules);

if ($this->form_validation->run() != FALSE) {
    $data = array(
        'username' => $this->input->post('username', true),
        'password' => $this->input->post('password', true)
    );

    $this->load->model('userData');
    if ($this->userData->getUserData($data) == FALSE) { # Uncler this point

        $title['title'] = 'Admin login';
        $this->load->view('login', $title);
    } else {

        $this->set_session($data);
        redirect('dashboard/index');
    }
} else {

    $title['title'] = 'Admin login';
    $this->load->view('login', $title);
}

你的做法是错误的。您无法访问函数外部的
$\u post
值。您也不需要
authentication()
函数

当您调用此函数时,
if($this->form\u validation->run()!=FALSE)
如果通过,则将``authentication()`函数代码添加到此处。然后可以设置会话


代码示例

$this->form_validation->set_rules($rules);

if ($this->form_validation->run() != FALSE) {
    $data = array(
        'username' => $this->input->post('username', true),
        'password' => $this->input->post('password', true)
    );

    $this->load->model('userData');
    if ($this->userData->getUserData($data) == FALSE) { # Uncler this point

        $title['title'] = 'Admin login';
        $this->load->view('login', $title);
    } else {

        $this->set_session($data);
        redirect('dashboard/index');
    }
} else {

    $title['title'] = 'Admin login';
    $this->load->view('login', $title);
}

if($this->userData->getUserData($data)==FALSE)
这是从数据库中选择数据的模型类的结果。但这里还有一点我可以用这个方法在登录控制器中回显会话,但为什么它在仪表板中不起作用?@nima按我的方式去做问题在于这里
if($this->userData->getUserData($data)==FALSE)
im sure
if($this->userData->getUserData($data)==FALSE)
它是从数据库中选择数据的模型类的结果。但这里还有一点我可以用这个方法在登录控制器中回显会话,但为什么它在仪表板中不起作用?@nima do it我的方法问题在于这里
if($this->userData->getUserData($data)==FALSE)
我确定