Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何发送会话数据并在Codeigniter中的视图或模型上访问它_Php_Codeigniter_Session - Fatal编程技术网

Php 如何发送会话数据并在Codeigniter中的视图或模型上访问它

Php 如何发送会话数据并在Codeigniter中的视图或模型上访问它,php,codeigniter,session,Php,Codeigniter,Session,我是Codeigniter的新手,我创建了一个登录表单,现在我想将一些会话变量传递给我的视图和模型,但我失败了 这是我启动会话的控制器代码 function validate_credentials(){ $this->load->model('users_model'); $query = $this->users_model->validate(); if($query){ $data = array(

我是Codeigniter的新手,我创建了一个登录表单,现在我想将一些会话变量传递给我的视图和模型,但我失败了

这是我启动会话的控制器代码

function validate_credentials(){
    $this->load->model('users_model');
    $query = $this->users_model->validate();
    if($query){
        $data = array(
            'username'=> $this->input->post('username'),
            'is_logged_in' => true
        );
        $this->session->set_userdata($data);
        redirect('site/dashboard');
    }
    else{
        //echo "Wrong";
        $this->index(); 
    }
}
这是我的型号代码

<?php
class Site extends CI_Controller{

    function _construct(){
        parrent::Controller();
        $this->is_logged_in();
    }

    function dashboard(){
        $this->load->view('dashboard');
    }

    function is_logged_in(){
        $is_logged_in = $this->session->userdata('is_logged_in');

        if(!isset($is_logged_in) || $is_logged_in !== true){
            echo 'You don\'t have permission to access this page. <a href="../login>Login</a>"';
            die();
        }
    }
}
?>
<body>
<?php $session_id = $this->session->userdata('username');
echo $session_id;
 ?>
Members Area Olny...!!
</body>
</html>

这是我的视图代码,实际上我需要会话变量

<?php
class Site extends CI_Controller{

    function _construct(){
        parrent::Controller();
        $this->is_logged_in();
    }

    function dashboard(){
        $this->load->view('dashboard');
    }

    function is_logged_in(){
        $is_logged_in = $this->session->userdata('is_logged_in');

        if(!isset($is_logged_in) || $is_logged_in !== true){
            echo 'You don\'t have permission to access this page. <a href="../login>Login</a>"';
            die();
        }
    }
}
?>
<body>
<?php $session_id = $this->session->userdata('username');
echo $session_id;
 ?>
Members Area Olny...!!
</body>
</html>

成员区奥尔尼。。。!!
您的代码是正确的。 确保已将会话库加载到配置文件夹中的autoload.php文件中

  • Codeigniter项目文件夹
    • 应用
    • 配置
      • autoload.php
打开autoload.php文件并添加会话库

复制并粘贴此代码$this->load->library('session')

您的代码是正确的。 确保已将会话库加载到配置文件夹中的autoload.php文件中

  • Codeigniter项目文件夹
    • 应用
    • 配置
      • autoload.php
打开autoload.php文件并添加会话库


复制并粘贴此代码$this->load->library('session')

我没有正确理解您的问题,但我认为您希望在模型中使用会话数据。 好的,你可以使用这个代码

// To Set a Data in Session
$session_data = array(
    'username' => $this->input->post('username'),
    'is_logged_in' => TRUE      
    );      
$this->session->set_userdata('user_data', $session_data); 

// To get the session data
 $session_data = $this->session->userdata('user_data');
 $user_name = $session_data['username'];
 $login_status = $session_data['is_logged_in'];
 //Now you can use this data in the model.

我希望我能向您说明清楚。

我没有正确理解您的问题,但我认为您希望在模型中使用会话数据。 好的,你可以使用这个代码

// To Set a Data in Session
$session_data = array(
    'username' => $this->input->post('username'),
    'is_logged_in' => TRUE      
    );      
$this->session->set_userdata('user_data', $session_data); 

// To get the session data
 $session_data = $this->session->userdata('user_data');
 $user_name = $session_data['username'];
 $login_status = $session_data['is_logged_in'];
 //Now you can use this data in the model.
我希望我能让你明白。

什么叫“但我失败了”?什么不起作用?结果与您预期的有什么不同?您收到了什么错误消息(如果有的话)?在
Site::\u construct()
中调用
parrent::Controller()其中(即使没有输入“parrent”)是不正确的。行应该是
parent::\uu construct()但我失败了是什么意思?什么不起作用?结果与您预期的有什么不同?您收到了什么错误消息(如果有的话)?在
Site::\u construct()
中调用
parrent::Controller()其中(即使没有输入“parrent”)是不正确的。行应该是
parent::\uu construct()