FuelPHPによるMVCプログラミング入門

HTMLをそのままビューに受け渡す

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
FuelPHPでは、ビューに渡される値をサニタイズ(無害化)し、安全性を高めています。しかし、必要に応じてこの処理を無効にしたい場合もあります。ここでは、オートフィルターの制御の方法を学びます。
講師:
07:20

字幕

ここでは HTML をそのままビューに受け渡すとしてController からビューに値を受け渡すときにHTML などがそのままでは渡されないという点について詳しくお話していきたいと思います。まずはその動きを確認してみましょう。FuelPHP を MAMP のアップロードフォルダであるMAMP hpdocs にセットアップします。今回は lesson04-03 というフォルダにこのように FuelPHP をセットアップしました。そして MAMP のこちらのドキュメントルートの 04 の 03 になっています。こちら URL を localhost8888 にすればウェルカムページが表示される状態です。ではここにまずは Controller を作成していきます。class Controller のここではSample としてextends で Controller を継承します。そして public function としてaction_index でここでビューを使っていきましょう。ではまずこのファイルを Controller として保存していきます。04-03、fuel の app、classes の Controller にここでは sample.php という名前で保存をします。 次にビューを作成しましょう。同じく新しいファイルを作ってこちらのテンプレートの HTML をコピーします。同時にテンプレートの CSS や画像群をlesson04-03 の public の中にコピーしましょう。ではこちらにこのようにタイトルを付けそして例えばここにprint $html というこちらの変数を期待するというビューを作ります。ではこちらのファイルはこちらの views の中にsample の Index.php といった名前で保存しましょう。ではこのビューに対してsample.php から値を受け渡していきます。例えばここでは $data ということでこれを配列にします。そしてこの中に p として「段落のタグです」ということで「強調します」このように HTML のタグが含まれた内容を受け渡していきましょう。ではここで return として先ほど作ったビューに対してデータを渡していきます。ではこれで表示を確認してみましょう。Safari から localhost:8888 のsample の Index を呼び出します。Index は省略しても結構です。呼び出すとこのように画面に表示されるんですがこちら見ていきますと分かる通りHTML がタグとしてそのまま出力されてしまっています。 ここでは本来は実際の段落にしてここも strong を強調として タグとして使いたいのですが基本的に FuelPHP は安全性を高めるためにHTML などはいわゆるサニタイズといわれる無害化処理を行ってから画面に出力します。では安全性がプログラマー自身で確保されているために自動的なサニタイズは必要ないという場合にはどのようにしたらいいでしょうか。一番簡単な方法としては今ビューを呼び出したこちらのメソッドの第3パラメーターに false を指定します。この3つめのパラメーターはオートフィルターというものを有効にするかどうかを判定するパラメーターなんですが、基本はここが true になっています。true ですとオートフィルターが有効になってサニタイズが発生しますので、これを false とすることでサニタイズを中止し、このようにp タグや strong タグがそのままHTML のタグとして渡されるようになります。ただしこの方法ですと一括ですべてのオートフィルタが無効になってしまうので例えばもう一つ何か要素があってここに非常に危険なタグが含まれていたりした場合もこちら側もサニタイズがされなくなってしまいます。 そこで個別に必要なものだけオートフィルタをオフにする方法も紹介しましょう。その場合この呼び出し方ですと残念ながら個別には行えませんのでビューを呼び出すもう一つの方法である先にビューのオブジェクトを作るという方法を使っていきます。このようにまずビューを割り当ててそしてビューのセットメソッドを使ってこのように値をセットします。そしてこちらの第3パラメーターにfalse を設定するとこの HTML という要素にだけオートフィルターは無効な状態になります。では例えばここでは danger ということでこのような script タグを同じくセットしてみましょう。ではこのビューを呼び出してそしてビューの方で今作った danger の方もこのように出力してみます。ではこちらのスクリプトを実行してみましょう。同じファイルを呼び出すと、「段落です」と書かれているこちらのサニタイズを無効にした方は、タグが出力されていません。これはつまり p タグがそのまま反映されているというわけです。そして2つ目のセットは false にしていませんのでサニタイズが発生してこのようにタグが画面に出力されるようになっています。 このようにサニタイズという安全性を高める処理というのが自動的に FuelPHP はされますので、基本的には有効に活用するようにして必要な時だけこのオートフィルターをオフにすると良いでしょう。

FuelPHPによるMVCプログラミング入門

このコースでは、PHPのフレームワークのひとつであるFuelPHPを紹介していきます。フレームワークとはスクリプト開発における「足場」となるもので、近年のスクリプト開発においては非常に一般的な存在となっています。高速な開発スタイルをぜひとも身に付けていきましょう。

6時間19分 (47 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月12日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。