[CakePHP1.3] CakePHP 1.3 によるWebアプリケーション開発(秀和システム) のメモ2
書籍「CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用」(秀和システム、掌田 津耶乃)のメモ その2。
フォームの利用。
用意するもの
項目 | 内容 | 例 |
---|---|---|
コントローラ内の メソッド |
フォームを組み込んだビューを表示するアクション。 | index |
送信データを取得するアクション。 | sendForm | |
ビュー | フォームを組み込んだページ。 | index.ctp |
取得した送信データを表示するページ。 | send_form.ctp |
フォームを組み込んだページの表示
アクション(コントローラ) | index |
---|---|
ビュー | index.ctp |
indexアクション
function index() { }
index.ctp
<form method="get" action="./sendForm"> <input type="text" name="text1" /> <input type="submit" /> </form>
送信データの取得と表示
例
アクション(コントローラ) | sendForm |
---|---|
ビュー | send_form.ctp |
sendFormアクション
function sendForm() { App::import( 'Sanitize' ); $str = $this->params['url']['text1']; if ( $str != "" ) { $result = "you type: ". $str; } else { $result = "empty."; } $this->set( "result", Sanitize::stripAll($result) ); }
send_form.ctp
<p><?php echo $result; ?></p>
フォームデータの取得方法
フォームデータを取得するには、$this->params 変数を利用する。
method | 変数 |
---|---|
GET | $tihs->params['url'][名前] |
POST | $tihs->params['form'][名前] |
コントローラからビューへ変数をセットする方法
コントローラからビューへ変数をセットするには、コントローラのsetメソッドを利用する。
書式: set( ビューでの変数名となる文字列, 値 )
たとえば、次の通り。これは、コントローラでの変数 $result の値を、 ビューでの変数 $data にセットしている。
$this->set( "data", $result );
データのサニタイジング
データのサニタイジングは、Sanitize クラスの stripAll メソッドで行う。 このメソッドは、問題となるタグのみ無害化し、それ以外のタグは残す(scriptタグなどを除去し、aタグなどは残す)。
Sanitize クラスを利用するには、ライブラリを読み込む必要がある。 ライブラリを読み込むには、App::import メソッドを利用する。
App::import( 'Sanitize' ); ... $result = Sanitize::stripAll($result);
Sanitize クラスのその他のメソッドは次の通り。
メソッド | 内容 |
---|---|
stripTags( $text, $tag1, $tag2, … ) | $text から、$tag? で指定したタグを取り除く。 |
stripAll( $text ) | $text から、以下の3つのメソッドのすべてを取り除く。 |
stripScripts( $text ) | $text から、scriptタグ、styleタグを取り除く。 |
stripImages( $text ) | $text から、imgタグを取り除く。 |
stripWhitespace( $text ) | $text から、空白文字(改行、タブなど)を取り除く。 |
html( $text, $remove = false ) | $text から、HTMLタグを無害化あるいは削除する。$remove が false なら無害化、true なら削除。 |
関連
- メモ その1 (2012-05-18)
« [CakePHP1.3] CakePHP 1.3 によるWebアプリケーション開発(秀和システム) のメモ | トップページ | [CakePHP1.3] 秀和システムの本 メモ3 - Formヘルパー »
「プログラム・スクリプト」カテゴリの記事
- [CakePHP1.3] 秀和システムの本 メモ5 - モデルクラスのメンバ変数とコールバック(2012.06.04)
- [CakePHP1.3] 秀和システムの本 メモ4 - データベースの利用1(2012.05.31)
- [CakePHP1.3] 秀和システムの本 メモ3 - Formヘルパー(2012.05.30)
- [CakePHP1.3] CakePHP 1.3 によるWebアプリケーション開発(秀和システム) のメモ2(2012.05.22)
- [CakePHP1.3] CakePHP 1.3 によるWebアプリケーション開発(秀和システム) のメモ(2012.05.18)