2016-10-04 2 views
1

Я загрузил класс сеанса в autoload.php, но когда я использую сеанс CodeIgniter, ничего не происходит.Класс сеанса Codeigniter не работает

Пример: Я установил флэш данные:

$this->session->set_flashdata('message', 'HELP!'); 

Когда я печатаю эту информацию ничего не происходит!

Пример:

echo $this->session->flashdata('message'); 

В чем проблема с моим кодом?

ПРИМЕЧАНИЕ: У меня возникают проблемы с сеансом CodeIgniter вообще, проблема с set_flashdata и set_userdata.

UPDATE:

Это была проблема с сервером, теперь она решена. Спасибо всем!

+0

Данные Flash доступны только для NEXT http-запроса. Вы делаете еще один запрос? Если да, вы делаете только один? – Kisaragi

+0

Да, я делаю еще один запрос и только один. –

+0

Вы уверены, что только один запрос был сделан? – Kisaragi

ответ

2

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

+0

Да, я делаю еще один запрос и только один. У меня проблемы с сессией CodeIgniter в целом. Проблема с set_flashdata и set_userdata, я не забыл encryption_key. –

+0

вы можете поделиться кодом, чтобы я лучше понял, как вы делаете запросы –

+0

См. Этот пример: if ($ this-> ion_auth-> login ($ this-> input-> post ('identity'), $ this-> input-> post ('password'), $ remember)) { $ this-> session-> set_flashdata ('message', $ this-> ion_auth-> messages()); redirect ('/', 'refresh'); } else { $ this-> session-> set_flashdata ('message', $ this-> ion_auth-> errors()); redirect ('auth/login', 'refresh'); } –

0

Ничего случиться, потому что это:

$this->session->set_flashdata('message', 'HELP!'); 

ли просто установка «HELP» в сессии «сообщение»;

$this->session->set_flashdata('error', 'WOOPS!'); 

Вам необходимо установить также некоторые условия, на ваш взгляд, для того, чтобы прочитать сессию и увидеть результат:

<?php 
    if($this->session->flashdata('message')) 
    { 
     ?> 
      <div class="container" style="padding-top:80px;"> 
      <div class="alert alert-info alert-dismissible" role="alert"> 
       <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       <?php echo $this->session->flashdata('message');?> 
      </div> 
      </div> 
     <?php 
    }elseif($this->session->flashdata('error')){ 
     ?> 
      <div class="container" style="padding-top:80px;"> 
      <div class="alert alert-warning alert-dismissible" role="alert"> 
       <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       <?php echo $this->session->flashdata('error');?> 
      </div> 
      </div> 
     <?php 
    } 
?> 

Как вы можете видеть, что здесь два примера один для сообщения (успех) и один для ошибки (неудовлетворительно)

EDIT:

в качестве реакции вашего комментария я отправляю это здесь, потому что в т он комментарий обыкновение быть читаемыми:

Как вы говорите, что вы уже сделали это:

$autoload['libraries'] = array('database','session'); 

ли вы установили это в конфиге?

$config['encryption_key'] = 'DCF564RT9JN761AZX56FR76Rd8hg6s12'; 

$config['sess_driver'] = 'database'; 
$config['sess_cookie_name'] = 'ci_session'; 
$config['sess_expiration'] = 7200; 
$config['sess_save_path'] = 'ci_session'; 
$config['sess_match_ip'] = FALSE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE; 
+0

Это не моя проблема. Я знаю, как печатать flashdata и проверять, установлено ли. У меня проблема с сеансом codeigniter вообще, проблема с set_flashdata и set_userdata. –

+0

У меня есть ответ в ответе. Я отправил туда, потому что здесь не будет читаться. Это странная проблема. – Franco

+0

Да, я уже сделал эту конфигурацию, и она не сработала –

0

Скачать последнюю версию Codeigniter (версия 3.1.6) от Codeigniter official website и заменить системную папку вашего проекта CodeIgniter, и она будет работы.

Смежные вопросы