このガイドに従って、最近CodeIgniter 3に更新しました: CI3:3.0を2.2.1からアップグレード 。
私はapplication/config/config.phpファイルでこの設定をセットアップしました:
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session_my_site';
$config['sess_expiration'] = 604800; // 1 week
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
ここに何か問題がありますか?数時間後にセッションが破棄されます...
保存パスで、場所フォルダーを設定する必要があります。使用する 'files'
セッションドライバーとして推奨。以下のように、セッションをフォルダを設定している基本パスに保存するためにキャッシュを設定しました。自動ロードされたセッションと$config['encryption_key'] = ''
キーを追加します。
データベースセッションを設定できますが、これも同様に機能します。フォルダのアクセス許可が0700であることを確認してください
http://www.codeigniter.com/userguide3/search.html?q=session&check_keywords=yes&area=default
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 1440;
$config['sess_save_path'] = BASEPATH . 'yourfoldername/cache/';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;
これが完了すると、次のようなことができるようになります。
$this->load->library('session');
$data_session_set = array('logged' => 1, 'username' => $this->input->post('username'), 'user_id' => $this->user_auth->get_id());
$this->session->set_userdata($data_session_set);
Application/config/config.phpでこの値を設定します:
$config['sess_save_path'] = sys_get_temp_dir();
私はそれが機能するこのコードを使用します。
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
if(session_id() == '') session_start();
} else {
if (session_status() == PHP_SESSION_NONE) session_start();
}
私は2つの異なる値を使用しましたが、どういうわけかそれらは機能しました、それはCentosのバージョンに依存します:
Centos 6.Xの場合:
Application/config/config.phpでこの値を設定します:
$ config ['sess_save_path'] = NULL;
Centos 7.Xの場合、私は次のものを使用しました。
$ config ['sess_save_path'] = sys_get_temp_dir();
この値を編集せずにサーバーバージョン間でアプリを移動すると機能しません。