codeigniter 如何在Codeignitor中检索会话数据

sq1bmfud  于 2022-12-06  发布在  其他
关注(0)|答案(4)|浏览(130)

这是我的控制器,其中用户名检查与电子邮件id,我有这个登录的注册区。我的需要是采取会话数据,包括会话id从这个代码可以有人请帮助整理这一点吗?

控制器

public function login(){
    
    $this->form_validation->set_rules('username', 'Username', 'required');
    $this->form_validation->set_rules('password', 'Password', 'required|min_length[5]');
    
    if($this->form_validation->run() == TRUE){
        
        $username = $_POST['username'];
        $password = md5($_POST['password']);
        
        //check user in db
        
        //session details for email and phone
        
        $this->db->select('*');
        $this->db->from('users');
        
        $query1 = $this->db->get();
        $sess = $query1->row();
        
        $this->db->select('*');
        $this->db->from('users');
        $this->db->where(array('email'=>$username, 'password'=>$password));
        $query = $this->db->get();
        
        $user = $query->row();
        
        
        //if user exists 
        if($user->email){
            //temp messAGE
            $this->session->set_flashdata("success",'you are logged in');
             
            //SET session variables
            $_SESSION['user_logged']= TRUE;
            $_SESSION['username']= $user->username;
            
            //redirection to profile page
            
            redirect("user/profile", "refresh");
        }
        else{
             $this->session->set_flashdata("error",'No Such Accounts found or please check username and password');
             redirect("home/index", "refresh");
         }
     }
     
    $this->load->view('login');
}
pkwftd7m

pkwftd7m1#

首先,您应该将查询或配置项ACTIVE RECORD放在模型中,而不是放在控制器中。
试试这个

$user->YourIDTableColumn

CI DB ACTIVE RECORD

pokxtpni

pokxtpni2#

多年后我得到了答案,因为当时我在codeignitor方面的经验较少,我感到困惑。我知道这是一个非常简单的问题,但这是我开始在codeignitor工作的一天,所以我自己写答案

$session_id = $this->session->userdata('id');
vuv7lop3

vuv7lop33#

如果您需要会话的id,您可以使用session_id。还有一件事,请使用application/config/autoload.php加载会话

$autoload['libraries'] = array('session');

比你可以在控制器或模型或视图中使用它。

$this->load->library('session');

echo $this->session->session_id;

或者如果你想要一些用户信息,如电子邮件,id等,这样你就可以使用。

echo $this->session->userdata("email");
r1wp621o

r1wp621o4#

首先,当用户登录时,您需要获取会话数据数组的用户ID。假设您的会话数据数组是user_data()

$userid = $this->session->user_data('user_id');

相关问题