Why can't see session in codeigniter from another controller? -
i have 2 controllers
1-connect facebook
2-connect create
when want register click on connect_facebook.php , controller info data , set in session, fill form , send data connect_create.php. problem connect_create controller can't see session ever, why?
<?php /* * connect_facebook website */ class connect_facebook extends website { /** * constructor */ function __construct() { parent::__construct(); // load necessary stuff... $this->load->config('account'); $this->load->helper('form'); $this->load->helper(array('language', 'ssl', 'url')); $this->load->library(array('authentication', 'facebook_lib')); $this->load->model(array('account_model', 'account_facebook_model')); $this->load->language(array('general', 'sign_in', 'account_linked', 'connect_third_party')); } function index() { // enable ssl? maintain_ssl($this->config->item("ssl_enabled")); // check if user signed in on facebook if ($this->facebook_lib->user) { // check if user has connect facebook a3m if ($user = $this->account_facebook_model->get_by_facebook_id($this->facebook_lib->user['id'])) { // check if user not signed in on a3m if (!$this->authentication->is_signed_in()) { // run sign in routine $this->authentication->sign_in($user->account_id); } $user->account_id === $this->session->userdata('account_id') ? $this->session->set_flashdata('linked_error', sprintf(lang('linked_linked_with_this_account'), lang('connect_facebook'))) : $this->session->set_flashdata('linked_error', sprintf(lang('linked_linked_with_another_account'), lang('connect_facebook'))); redirect('users/account_linked'); } // user has not connect facebook a3m else { // check if user signed in on a3m if (!$this->authentication->is_signed_in()) { // store user's facebook data in session $this->session->set_userdata('connect_create', array(array('provider' => 'facebook', 'provider_id' => $this->facebook_lib->user['id']), array('fullname' => $this->facebook_lib->user['name'], 'firstname' => $this->facebook_lib->user['first_name'], 'lastname' => $this->facebook_lib->user['last_name'], 'gender' => $this->facebook_lib->user['gender'], 'email' => $this->facebook_lib->user['email'], // not required field, not users have set 'picture' => 'http://graph.facebook.com/' . $this->facebook_lib->user['id'] . '/picture/?type=large' // $this->facebook_lib->user['link'] ))); // send data user submit form $data['locale'] = $this->facebook_lib->user['locale']; $data['session'] = $this->session->userdata('connect_create'); $data['facebook_id'] = $this->facebook_lib->user['id']; $data['username'] = $this->facebook_lib->user['name']; $data['gender'] = $this->facebook_lib->user['gender']; $data['email'] = $this->facebook_lib->user['email']; $this->view('site/connect_create', $data); } else { // connect facebook a3m $this->session->userdata('account_id'); $this->session->set_flashdata('linked_info', sprintf(lang('linked_linked_with_your_account'), lang('connect_facebook'))); redirect('user/account_linked'); } } } // load facebook redirect view $this->load->view("site/redirect_fb"); } }
connect_create controller
class connect_create extends website { /** * constructor */ function __construct() { parent::__construct(); // load necessary stuff... $this->load->config('account'); $this->load->helper(array('language', 'ssl', 'url')); $this->load->library(array('authentication', 'form_validation')); $this->load->model(array('account_model', 'account_details_model', 'account_facebook_model')); $this->load->language(array('general', 'connect_third_party')); } /** * complete facebook's authentication process * * @access public * @return void */ function index() { // enable ssl? maintain_ssl($this->config->item("ssl_enabled")); // redirect user home if sign ups disabled if ( ! ($this->config->item("sign_up_enabled"))) redirect('tttt'); // redirect user home if 'connect_create' session data doesn't exist if ( ! $this->session->userdata('connect_create')) redirect('bbbbbb'); $data['connect_create'] = $this->session->userdata('connect_create'); // setup form validation $this->form_validation->set_error_delimiters('<span class="field_error">', '</span>'); $this->form_validation->set_rules(array(array('field' => 'connect_create_username', 'label' => 'lang:connect_create_username', 'rules' => 'required'), array('field' => 'connect_create_email', 'label' => 'lang:connect_create_email', 'rules' => 'trim|required|valid_email|max_length[160]'))); // run form validation if ($this->form_validation->run()) { // check if username exist if ($this->username_check($this->input->post('connect_create_username', true)) === true) { $data['connect_create_username_error'] = lang('connect_create_username_taken'); } // check if email exist elseif ($this->email_check($this->input->post('connect_create_email'), true) === true) { $data['connect_create_email_error'] = lang('connect_create_email_exist'); } else { // destroy 'connect_create' session data $this->session->unset_userdata('connect_create'); // create user $user_id = $this->account_model->create(); // add user details $this->account_details_model->update($user_id, $data['connect_create'][1]); // connect third party account user switch ($data['connect_create'][0]['provider']) { case 'facebook': $this->account_facebook_model->insert($user_id, $data['connect_create'][0]['provider_id']); break; } // run sign in routine $this->authentication->sign_in($user_id); } } $this->load->view('site/connect_create', isset($data) ? $data : null); }
go config.php
located in application/config folder
set $config['cookie_domain']="";
give try.
and try load session library in auto load config
application/config/autoload.php
$autoload['libraries'] = array('session');
Comments
Post a Comment