Reputation: 618
I have included session in autoload, and its working on all other places.
I'm having problem in retrieving session variable it return null result. While in the controller where i have set the session there it's working fine.
Here is the code where i'm setting it in else condition:
class Controller_catagory extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('generic_model');
$this->load->model('backend/model_post');
$this->load->model('backend/model_permissions');
}
public function index($param1='',$param2='')
{
$id=$this->generic_model->getAllRecords('dramas',array(
'drama_slug' => $param2 ),'drama_id','DESC');
// print_r($id);
if (!empty($id))
{
foreach ($id as $key)
{
$id = $key['drama_id'];
}
}
$data;
if (!empty($param1) && empty($param2))
{
$data["page"] = 'frontend/includes/view_alldramas';
$id = $this->generic_model->getAllRecords('channel',array('channel_slug' => $param1 ),'channel_id','DESC');
if (!empty($id))
{
foreach ($id as $key)
{
$id = $key['channel_id'];
$ch_slug= $data['ch_slug'] = $key['channel_slug'];
$this->session->set_userdata('ch_slug',$ch_slug);
}
}
$this->session->set_userdata('channel_capture',$id);
$data['dramas_pagination'] = $this->model_post->get_specific_channel_pagination(0,12,$id);
$data["get_dramas"]=$this->model_post->get_all_dramas();
$data['channels'] = $this->generic_model->getAllRecords('dramas', array('channel_fk' => $id ),'drama_id','DESC');
}
else
{
// The id is printing right result
echo $id;
// Here i'm setting session, if i retrieve here its working
$this->session->set_userdata('drama_episode',$id);
$data['episodes_pagination'] = $this->model_post->get_specific_post_pagination(0,12,$id);
$data["get_episodes"]=$this->model_post->get_all_dramas();
$data['dramas'] = $this->generic_model->getAllRecords('post',$arr = array(
'dramas_fk' => $id ),'id','DESC');
$data["page"] = 'frontend/includes/view_allposts';
}
$data['title'] = 'GLOBAL VIDEOS';
$data['heading'] = 'Dramas List';
$data["top"] = 'frontend/includes/top_home';
$this->load->view('frontend/index',$data);
}
}
}
Now here is another class where i'm trying to get the value of set session but its not retrieving the data and i'm getting empty record.
Note: i am doing the same thing with 'channel_capture' and i'm successfully getting its value
class Home extends CI_Controller {
public function __construct()
{
$data = array();
parent::__construct();
$this->load->model('backend/model_post');
$this->load->model('generic_model');
}
public function ajax_posts()
{
$start= $_GET['start'];
// it gives empty result here don't know why
$id = $this->session->userdata('drama_episode');
//prints nothing
echo "This key: ".$id;
$post_pagination=$this->model_post->get_specific_post_pagination($start, 12, $id);
var_dump($post_pagination);
$str='';
$base_url=base_url();
if (empty($post_pagination))
{
return false;
}
foreach($post_pagination as $post)
{
$str.= '<div class="col-lg-3 col-sm-6 col-md-4 epi_height" >';
$str.= '<a href='.$base_url.$post['slug'].'>';
$str.= '<img class="img-responsive" src='.$base_url.$post['thumbnail'].' alt="recent dramas" />';
$str.= $post['title'];
$str.= '</a>';
$str.= '</div>';
}
echo $str;
}
}
Upvotes: 0
Views: 4310
Reputation: 1892
Try to set session before if else condition like:
$this->session->set_userdata('drama_episode',$id);
your if else goes here and then retrieve it.
Upvotes: 1
Reputation: 87
Please do these troubleshooting :-
Inside index() function add
echo $this->session->userdata('drama_episode'); die();
Now call the controller i believe URL/category.
Inside ajax_posts() function print the entire session
print_r($_SESSION); die();
Call the URL to access the function ajax_posts() Let me know what is the output u r getting?
==================================== Alternatively check, before you call the function ajax_posts(), are you some where deleting the session value for drama_episode ?
Upvotes: 0
Reputation: 907
Auto load session library from autoload.php as follows:
$autoload['libraries'] = array('session');
and you can use session variables wherever you like!
Or you may need to use flash explained here:
https://www.codeigniter.com/user_guide/libraries/sessions.html#flashdata
Upvotes: 0