簡體   English   中英

我如何發送會話數據並在視圖中訪問它或在Codeigniter中模型

[英]How i can Send Session Data and Access it on view or Model in Codeigniter

我是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>

您的准則是正確的。 確保已在配置文件夾中的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.

我希望我能為你說清楚。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM