続:掲示板を作ろう その8

ログインしたら、ログアウトもないと困るよね。ってことでログアウト機能つけてきます。

非ログイン時はコメントフォーム、ログアウト時はログインフォームを表示させるような感じの作りにしたいので、そんな流れで!

ビュー logout.php を作る
<p><a href="<?php echo site_url('board/logout'); ?>">ログアウト</a></p>

これにて終了。なんというシンプルさ。

コントローラに logout.php を読み込ませる
if($this->session->userdata('logged_in') === TRUE) {
    if ($this->form_validation->run('comments') === FALSE) {
        $this->load->view('logout'); ← ここ
        $this->load->view('form');
    } else {
        $this->boardmodel->insert();
        redirect('board');
    }

ログイン時だけ、表示させればいいので、$this->load->view('loguout') で読み込んで終了。
なんというシンプルさ。

コントローラにログアウト機能を追加する
public function logout() {
    $this->session->sess_destroy();

    redirect('board');
}

なんというシンプルさ。
参照:セッションクラス : CodeIgniter ユーザガイド 日本語版

$this->session->sess_destroy();

これでログイン状態を解除して、リダイレクトすると。

$this->session->unset_userdata('logged_in');

これでもログイン状態の管理は出来るかなと。
CodeIgniterのセッションクラスは、データベース側で管理するセッションと違って暗号化されたデータをクッキーに保存する形らしいので、さっぱり消した方がいいのかなーなんて思ったりらじばんだり。

と、まだまだ実装できてない機能がありますがここいらで、完成ということにしちゃいます(:D)rz