の設定に問題この方法。 これまでのところ、この方法は期待通りに機能しますが、ユーザーがページを更新するとエラー404ページが表示されます。私は、ユーザーが現在のページを更新している間私は、インデックスメソッドで$this->session->keep_flashdata('img_path');
を追加する必要が生きflashdataを維持したい、そうするために(またはコンストラクタ、私は両方試した)、または私は別の$this->session->set_flashdata('img_path',$pathToFile);
が、私のためのソリューションdoes't作業の両方を追加する必要があります。どうして?テストのために 私は方法の最後にvar_dump($this->session->flashdata('img_path'));
を入れました。後、私はimg_pathを持っていますが、リフレッシュした後、それは価値が私は、私はこの方法でflashdataを設定しようとしたしないと、私はそれを持っていますし、ページを更新した後、それがnullに設定されます。このメソッドにリダイレクトします。 file
という名前の他のフラッシュデータには決して割り当てられた値が割り当てられません。なぜこうなった?CodeIgniterのこれが方法で私のコードですflashdata
私のセッションの設定はとして怒鳴ると私はautoload.php
でセッションライブラリをロードし、それが他のコントローラやページで正常に動作します。
$config['sess_expiration'] = 0;
$config['sess_save_path'] = APPPATH . 'cache/';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
-------------------------------------
UPDATE
-------------------------------------
コード内で少しシンプル:
public function test1() {
$this->session->set_flashdata('img_path',"abc");
redirect('imgs/test2','refresh');
}
public function test2() {
$this->session->keep_flashdata('img_path');
$pathToFile = $this->session->flashdata('img_path');
if ($pathToFile) {
$this->session->set_flashdata('file' , $pathToFile);
$this->session->set_flashdata('img_path' , $pathToFile);
var_dump($pathToFile);
} else {
show_404();
}
}
私がlocalhost/imgs/test1
に行くと、それはフラッシュデータを設定し、localhost/imgs/test2
にリダイレクトされ、var_dump(...)
セクションが実行され、私のために「abc」が詳細に印刷されます。 しかし、ときに私はkeep_flashdata
を使用した場合であってもflashdataは、もはや存在していないため、ページをリフレッシュすると、その私に404 error page
を示しました。
実際には意図しない方法でflashdataを使用しています。なぜあなたのセッションでそれを設定し、それが完了したときにそれを設定解除しないでください? – Kisaragi
ユーザー変更コントローラの場合、セッションを破棄したい。私はこれが他のコントローラのコンストラクタで余分なコーディングなしでセッションが存在する場合、セッションを削除するための最良のアプローチだと思った? –