- 締切済み
codeigniterのsessionについて
codeigniterで、管理画面を作っていて、今認証画面に取り掛かってますが、sessionが引き継がれません。 ※以下のコードは、session以外は省いてます。 controller側のtop.phpで、 class Top extends MY_Controller { public function __construct() { parent::__construct(); $this->load->library('session'); } public function index() { $superuser = array( 'superuser' => 'yes' ); $this->session->set_userdata($superuser); redirect('show'); } $this->load->view('admin/top', $page); } とし、controller側のshow.phpで、 class Show extends MY_Controller { public function __construct() { parent::__construct(); $this->load->library('session'); } public function index() { var_dump($this->session->userdata('superuser')); $this->load->view('admin/show'); } } としてますが、show.phpで、var_dumpがfalseを返してしまい、sessionが引き継がれません。 ご教授下さい。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yterajima
- ベストアンサー率100% (1/1)
CodeIgniterのバージョンはどれをご利用でしょうか?またsessionの保存はDBで行っていますでしょうか? もし最新版の2.0.3をご利用の場合で、DBにsessionを保存している場合、 session保存用テーブルの構造を確認してください。 2.0.3からuser_agentカラムの文字数制限が50文字→120文字へ変更されており、ユーザーガイドのSQLが変更されています。 http://codeigniter.com/user_guide/libraries/sessions.html (Saving Session Data to a Databaseのところ)
補足
バージョンは、ci-ja-all-in-one-2.0.1-1です。 show create table で CREATE TABLE `ci_sessions` ( `session_id` varchar(40) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', `ip_address` varchar(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0', `user_agent` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `last_activity` int(10) unsigned NOT NULL DEFAULT '0', `user_data` text COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`session_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci