СЕССИЯ отсутствует в поле зрения - PullRequest
0 голосов
/ 12 марта 2012

, как указано выше, когда я запускаю контроллер с гиперссылкой, он выполняет функцию контроллера, но я не смог получить значение SESSION после перенаправления с контроллера.Код выглядит следующим образом ...

function langpref($lang){       
    $this->load->helper('url');
    redirect(ABSOLUTE_PATH, 'location');        

    $this->session->set_userdata('cur_lang', 'xxx');        
}   

* Примечание: ABSOLUTE_PATH является константой гиперссылки, и я уже загружаю библиотеку SESSION в файл автозагрузки.

В моем файле просмотраЯ написал код следующим образом ...

<?php echo $this->session->userdata('cur_lang');?>

, и он не выводит значение SESSION.

Ответы [ 3 ]

1 голос
/ 12 марта 2012

Разве это не должно быть:


function langpref($lang){       
    $this->load->helper('url');
    $this->session->set_userdata('cur_lang', 'xxx');

    redirect(ABSOLUTE_PATH, 'location');
}   

А по вашему мнению:


<?php echo $this->session->userdata("cur_lang"); ?>

1 голос
/ 12 марта 2012

Первый подход: Вы не можете получить доступ к таким переменным сеанса

<?php $ci =& get_instance(); ?>
<div>
   <?php echo $ci->session->userdata('cur_lang') ?>
</div>  

Второй подход: Другой способ сделать это - передать данные сеанса вview

На вашем контроллере

$data['userdata'] = $this->session->userdata;
$this->load->view('your/view', $data); 

На вашем просмотре

echo $userdata['cur_lang'];
0 голосов
/ 12 марта 2012

сессия является глобальной переменной.если вы хотите использовать его в классе или функции.вам нужно получить к нему доступ, передав переменную сеанса в качестве аргумента функции.или вам нужно использовать глобальную команду.например,

class XXX{
   public function processSession($_SESSION){
      return $_SESSION['xx'];
   }
}

или вы можете использовать глобальную директиву

class XXX{
   public function processSession(){
      global $_SESSION;
      return $_SESSION['xx'];
   }
}

, иначе вы можете запустить сеанс в функции

class XXX{
   public function processSession(){
      session_start();
      $_SESSION['xx'] = 'aaaa';
      return $_SESSION['xx'];
   }
}

, иначе вы не можете получить доступ к сессиипеременная в функции или функции класса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...