CodeIgniter

CodeIgniter2.0で簡易ログイン機能を実装する。
管理者画面とか、ログインするユーザーが一人しかいない場合は、冗長なユーザー管理機能は不要。

参考

多機能なユーザー管理機能を必要とする場合

CodeIgniterのユーザ認証ライブラリ「Tank_Auth」を利用する。

多機能なユーザー管理機能を必要としない場合

Controllerを拡張して、ログインチェック機能を追加する。

データベース

#code(sql){{

CREATE TABLE IF NOT EXISTS `admin` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `username` varchar(255) NOT NULL,
 `password` varchar(255) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

}}

ライブラリ

ログイン認証用ライブラリを用意する。
CodeIgniter2.0用(CodeIgniter1.xは、コントローラークラスの拡張方法が異なるので注意!)

コントローラー

ログイン認証用のコントローラーを用意する。

ビュー

ログイン認証用のビューを用意する。

p>ログインしてください。</p>

!--エラーメッセージ-->

font color="red"><?php echo validation_errors(); ?></font>

?php echo form_open('auth/login'); ?>

dl>

 <dt>ユーザ名</dt>
 <dd><input type="text" name="username" value="<?php echo set_value('username'); ?>"></dd>
 <dt>パスワード</dt>
 <dd><input type="password" name="password" value="<?php echo set_value('password'); ?>"></dd>

/dl>

!--ログイン後に移動するページ-->

input type="hidden" name="next" value="<?php echo $next; ?>">

input type="submit" value="ログイン">

/form>

/body>

/html>
}}

ログイン認証の使い方

ログイン認証を必要とするページのコントローラーには、MY_Controller.phpを継承させる。

設置例

管理者画面の「admin」ページの設置例

通常のコントローラーは、CI_Controllerクラスを継承して作るが、
ログイン認証を行うコントローラーでは、MY_Controllerクラスを継承して作る。

オリジナルのライブラリ「MY_Controller.php」でログインチェックを行い、

MD5

データベースに保存するパスワードは、MD5(ハッシュ関数)で暗号化しておきます。
phpMyAdminで直接データを追加する場合は、MD5のツールを使うと便利です。

(例)MD5ハッシュ計算ツール - phpspot


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS