CodeIgniter の Session
クラスを使用すると、Web ブラウザとサーバ間のセッションデータを簡単に保存することができます。
Session
クラスを使用するには、application/config/config.php
に暗号化キーをセットしておく必要があります。
$config['encryption_key'] = 'B4SgB9IGUZpYcjAKNAnCUICh0ByZpdoJ';
32 文字のランダムなキーは、例えば以下のように作成できます。
<?php
function create_encryption_key() {
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$num = 62;
$str = '';
for ($i = 0; $i < 32; ++$i) {
$str .= $chars[mt_rand(0, $num-1)];
}
return $str;
}
echo create_encryption_key();
コントローラーのコンストラクタなどで、以下のようにライブラリをロードし、
$this->load->library('session');
あとは、セッションデータの読み書きを以下のように行うだけです。
$this->set_userdata('key', 'value'); // セッションデータの設定
$this->userdata('key'); // セッションデータの取得
$this->unset_userdata('key'); // セッションデータの削除
下記の Session コントローラーを配置したうえで、http://your.site/index.php/session/set/
にアクセスすると、セッションデータの設定、http://your.site/index.php/session/get/
にアクセスすると、セッションデータの取得が行われます。
<?php
class Session extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->library('session');
}
public function set() {
$this->session->set_userdata('key', 'ABCDE');
echo 'Set';
}
public function get() {
echo 'Get: ' . $this->session->userdata('key');
}
}