如何获取会话ID

时间:2017-11-22 06:20:23

标签: php codeigniter

这是我的控制器,其中用户名检查电子邮件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');
}

4 个答案:

答案 0 :(得分:1)

首先,您需要在用户登录时将用户ID放入会话数据数组。 假设您的会话数据数组为user_data()

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

答案 1 :(得分:0)

首先,您应该将查询或CI ACTIVE RECORD放在模型中,而不是IN控制器..

试试这个

$user->YourIDTableColumn

CI DB ACTIVE RECORD

答案 2 :(得分:0)

几年后我得到答案,因为那时我在Codeignitor的经验还很少,我很困惑,我知道这是一个非常简单的问题,但是那是我开始在Codeignitor中的一天,所以我自己编写答案

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

答案 3 :(得分:0)

如果您想要会话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");