2016-10-04 126 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()); 重定向('/','refresh'); } else { $ this-> session-> set_flashdata('message',$ this-> ion_auth-> errors()); 重定向('auth/login','refresh'); } –

0

沒有發生,因爲這樣的:

$this->session->set_flashdata('message', '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 
    } 
?> 

正如你可以看到這裏有兩個例子一個是消息(成功),一個用於錯誤(失敗)

編輯:

由於您的評論的反應我在這裏發佈這個,因爲在T他評論不會是可讀:

正如你說你已經做到了這一點:

$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

這不是我的問題。 我知道如何打印flash數據並檢查是否已設置。 我遇到了一般的codeigniter會話問題,set_flashdata和set_userdata有問題。 –

+0

我在答案中有一個編輯。我在那裏發佈,因爲在這裏不可讀。這是一個奇怪的問題。 – Franco

+0

是的,我已經做了這個配置,它不工作 –