Rizwan Gohar
Rizwan Gohar

Reputation: 57

Accessing session data in another controller gives error

public function LoginUser()
{

    $this->form_validation->set_rules('email', 'Email', 'required');
    $this->form_validation->set_rules('password', 'Password', 'required');
    if ($this->form_validation->run() == FALSE)
    {
        $this->load->view('login');
    }
    else 
    {

        $data['Email']=$this->input->post('email');
        $data['Password']=$this->input->post('password');
        $result=$this->UserAccount_model->LoginUser($data);
        if($result)
        {

            $session_data = array(
            'sesid' => $result[0]->id,
            'sesname' => $result[0]->Name,
            'sesemail' => $result[0]->Email);

            // Add user data in session
            $this->session->set_userdata('logged_in', $session_data);

            $url=base_url()."UserAccount/LoggedIn";

              header("Location:$url");
         }

Now i am accessing session data in photo controller

public function LikePhoto()
{
    $Id=$this->uri->segment(3);
    $UserId=$this->$session_data['sesid'];
    print($UserId);
    exit();

but this gives error

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: session_data

Filename: controllers/Photo.php

Line Number: 55

Upvotes: 0

Views: 171

Answers (1)

B. Desai
B. Desai

Reputation: 16436

In CI to get session data you have to use $this->session->userdata()

So change your code to:

$UserId=$this->session->userdata('logged_in')['sesid'];

EDIT If you want to store data from array only add array variable in session

So change

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

To

$this->session->set_userdata($session_data);

And to retrieve :

$UserId=$this->session->userdata('sesid');

Upvotes: 2

Related Questions