I want to get session data in codeigniter I set it successfully but fail to get session data when i print the session data it is empty when i check session data where i set it first it show all the data in the same function but I get same data in anther function data is not showing. Any body help thanks in advance. set session data here
public function user_login()
{
$username = $this->input->post('user_name');
$pass = $this->input->post('user_password');
$pass = hash('sha1', $pass);
$array_con = array('emailid' => $username ,'password' => $pass);
$data = $this->User_model->login($array_con);
if (!empty($data)) {
$newdata = array(
'pkuserid' => $data->pkuserid,
'emailid' => $data->emailid,
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
echo json_encode($data);
}else
{
$data = 0;
echo json_encode($data);
}
}
this is ajax call
if(error=='') {
var formData = new FormData($('#logged_in')[0]);
$.ajax({
type: "POST",
url: base_url+"profile/user_login",
data: formData,
cache:false,
processData:false,
contentType:false,
success: function(data){
var result = $.parseJSON(data);
if (result == 0)
{
error = 'Authentication Failed';
$("#failed_access").html(error);
$("#failed_access").css("display","block");
$('#failed_access').delay(5000).fadeOut('slow');
}else{
window.location = base_url+"profile/profile_setup";
}
}
});
}
this is get session function
public function profile_setup()
{
$email_id = $this->session->userdata('emailid');
if(!empty($email_id))
{
$result['result'] = $this->User_model->profile_data($email_id);
$user_id = $result['result']->pkuserid;
$this->session->set_userdata('user_id',$user_id);
$result['countries'] = $this->User_model->get_countries();
$result['industries'] = $this->User_model->get_industries();
$result['institution'] = $this->User_model->get_institutions();
$result['result_companies'] = $this->User_model->get_companies();
$result['pagetitle'] = 'profile_setup';
if (!empty($result)) {
$this->load->view('header/registeruser_header_view');
$this->load->view("users/profile_view.php", $result);
$this->load->view('footer/profilesetup');
}
}else
{
redirect(base_url());
}
}
Replace this where you are going to set session in code.
$this->session->set_userdata('logged_in',array(
'pkuserid' => $data[0]->pkuserid,
'emailid' => $data[0]->emailid,
'logged_in' => TRUE
));
Then change in profile_setup function as below code
$session_data = $this->session->userdata('logged_in');
$email_id = $session_data['emailid'];