Kohanaで入力→確認→完了までを作ってみた

ユーザーの登録~完了まで。
入力項目は名前とmailアドレス。
guesswork利用した時と似た感じになった。
自分がやりやすいからだと思うのだけど、これ正しいやり方?
CodeIgniter利用しても似た感じになるのかなー。
テンプレートエンジンにPHPTAL使ったのでview系のヘルパーは一切利用してません。
■コントローラ
・/application/controllers/reg.php

<?php defined(’SYSPATH’) or die(’No direct script access.’);

class Reg_Controller extends Controller {

function __construct()
{
parent::__construct();

$this->validation->error_format(’{message}’);
}

function index($status=’init’)
{
$fields = array(’username’, ‘mail’, ‘mail_confirm’);

$methodName = sprintf(’index_%s’, $status);
if (!method_exists($this, $methodName)) {
[…]

Kohanaのautoload

Kohanaは情報が少ないのでCodeIgniterのサイトから情報を収集しているのだけれどやっぱりちょっと違う部分もある。
それでちょっと悩んだのがautoload。
autoloadとはクラス(機能)の自動読み込み。これを利用すると、毎回loadメソッドを呼び出す必要がない。
CodeIgniterの場合はapplication/config/autoload.phpで設定を行う。
Kohanaではconfig.phpのautoloadに設定するっぽい。
設定内容はこんな感じ
application/config/config.php

$config = array
(
’site_domain’ => ‘localhost/’,
’site_protocol’ => ‘http’,
‘index_page’ => ‘index.php’,
‘url_suffix’ => ‘.html’,
[…]

Inputクラスのxss_cleanメソッド

KohanaのInputクラスを検証。
xss_cleanメソッドってscriptタグを丸々消し去るのね。
ちなみにxss_cleanメソッドはクロスサイトスクリプティング攻撃防止フィルタ。
■controller

function index()
{
$posts = $this->input->post();
print Kohana::debug($posts);
echo sprintf("<pre>%s</pre>n", print_r($posts, true));
echo sprintf("<pre>%s</pre>n", print_r($this->input->xss_clean($posts), true));
}

■結果(HTMLソース)

<pre>Array
(
[name] =&gt; &lt;b&gt;a&lt;/b&gt;
[email] =&gt; &lt;script&gt;aler(2);&lt;/script&gt;
[email_confirm] =&gt; c
)

</pre><pre>Array
(
[name] […]