2016-10-04 19 views
1

私はセッションクラスをautoload.phpにロードしましたが、CodeIgniterセッションを使用すると何も起こりません。Codeigniterセッションクラスが動作しない

例:私は、フラッシュデータを設定します。

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

私は何も起こりません。この情報を印刷します!

例:

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

私のコードの問題は何ですか?

注:一般的にCodeIgniterセッションに問題があり、set_flashdataとset_userdataの問題があります。

UPDATE:

今ではそれが解決しています、サーバーの問題でした。 ありがとうございます!

+0

フラッシュデータは、NEXT http要求でのみ使用できます。別のリクエストをしていますか?もしそうなら、あなたは1つしか作っていませんか? – Kisaragi

+0

はい、私は別のリクエストをしています。 –

+0

ただ1つのリクエストが作成されていることは確かですか? – Kisaragi

答えて

2

フラッシュデータは、特定のセッション内の次回のサーバーリクエストに対してのみ利用可能です。ビューをロードした後に別のリクエストを行った場合やリダイレクトを行った場合、フラッシュメッセージは表示されません。それ以外の場合は、セッションファイルを自動ロードする設定ファイルにencryption_keyキーを追加し、ビューを読み込んだ後に別のページにリダイレクトしないようにしてください。これは、このため

+0

はい、私は別の要求をしています。 一般的にCodeIgniterセッションに問題があります。 set_flashdataとset_userdataの問題、私はencryption_keyを忘れていませんでした。 –

+0

あなたはコードを共有して、どのようにリクエストを行っているかをよりよく理解できます –

+0

この例を参照してください: if($ this-> ion_auth-> login($ this-> input-> post( 'identity')、$ (パスワード)、$覚えておいてください)){ $ 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!'); 

はちょうどセッションのメッセージ」内の「HELP」を設定されています。あなたが見ることができるように、2つの例が、ここでのメッセージの1(成功がある

<?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 
    } 
?> 

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

あなたはセッションを読み、その結果を確認するためにも、あなたのビューでいくつかの条件を設定する必要があります)とエラー(失敗)

EDITのための1:あなたのコメントの反応として

私はトンであるため、ここでこれを投稿します

あなたはすでにこれを行っている言うように:あなたはまた、設定でこれを

$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

これは私の問題ではありません。 私はフラッシュデータを印刷し、チェックが設定されているかを確認する方法を知っています。 一般的にcodeigniterセッションに問題があり、set_flashdataとset_userdataの問題があります。 –

+0

私は答えを編集しました。私はここに読まれないので、そこに投稿しました。これは奇妙な問題です。 – Franco

+0

はい、私はすでにこの設定を行っていて、うまくいきませんでした。 –

0

Codeigniter official websiteから最新バージョンCodeIgniterの(バージョン3.1.6)をダウンロードしてCodeIgniterのプロジェクトにシステムフォルダを置き換え、それが作品になります。

関連する問題