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

Sessionに情報を記録する

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
セッションは、複数ページのWebページにわたって情報を記録するための仕組みです。FuelPHPにも、簡単にセッションを利用できる機能が備わっています。ここでは、お問い合わせ画面の確認画面を作るためのセッションを作ってみましょう。
講師:
08:49

字幕

ここではセッションに情報を記録するとしましてセッションという機能を紹介していきたいと思います。ウェブページは1ページを表示するごとに情報が消えてしまうという特性があるため、例えば2ページ目3ページ目へ情報を受け渡したい時にはセッションやクッキーなどの方法を利用して一時的に情報を記憶しておく必要があります。FuelPHP でもセッションという機能があり簡単な手続きでセッションに情報を記録することができます。例えば今表示されている画面は「お問い合わせ」ページのような形でお名前やメールアドレスを記入する欄があります。何も記入せずに「送信する」ボタンをクリックするとこのように同じ入力画面が表示されてエラーメッセージが表示されます。そして正しく情報を記入すると次の確認画面に移動するんですが、この時ウェブページのジャンプの方法としては一度入力画面が呼び出された後にリダイレクトという方法でこちらのチェックが呼び出されています。そのため入力した情報がこの時点で消えてしまっているわけです。そこでそれを防ぐためにセッションというものに一時的に情報を保存します。ではここまでのスクリプトを確認しておきましょう。 ここではレッスン 05-07 というフォルダにFuelPHP をセットアップし、少しスクリプトが組まれています。classes の contoroller のcontact.php の中にはaction_index それからaction_check ということで入力の確認画面とそれから入力画面が定義されています。そしてそれぞれ view がindex と check という形で定義されていてこちらは views の contact の中にそれぞれ収められています。index の方はこのように入力画面が定義されていて中にはエラーの時の処理などが書かれています。チェックの方は現在ただ単にこのように変数にセットされた内容を表示するというような項目になっています。ではここで入力画面の所でエラーチェックが終わった後チェック画面にジャンプする前に入力した内容をセッションに保存してチェック画面の方ではその記録したセッションの内容を表示する、というようにスクリプトを変更していきたいと思います。まず変更するファイルとしてはcontroller です。classes の controller のcontact.php を編集し編集する場所としてはこの部分になります。 ここでは 12 行目でフォームが送信されたかどうかというのを確認し、validation として入力チェックを行っています。そして val の欄が true つまり入力チェックがすべてクリアした場合、14 行目でチェック画面へredirect しています。この時 redirect をする前にセッションに情報を記録するというのがここでの作業になります。では実際にやってみましょう。セッションに情報を記録するにはここに Session と書いて::set_flash というメソッドを使っていきます。そしてフィールドの名前を指定し記録する内容をここに記述していきます。ここでは post_myname としましょう。これで myname というキーがついたセッションに今記入されたmyname の情報が記録されます。この調子で他の物も記録していきましょう。同じく set_flash で今度は email を記録していきます。input::post の email を記録します。最後に性別ということでgender を同じく input から取り出して記録します。これでセッションに情報が記録されましたので、今度はチェック画面の方でその記録したセッションを呼び出すようにしなければなりません。 今 action_check の内容を見ていきますとこの view に渡している data という変数にはこちら data の myname や email やgender をセットしていますが今のセットとしてはこのようにフォームの入力内容がセットされています。しかし先ほどの通りこの check が呼ばれるタイミングではもうすでに input の内容はすべて空になってしまっています。そこでこれは使えませんので代わりに何を使うかといいますと、セッションの :: (コロン・コロン)今度は get_flash というものを使います。先程使った set_flash と set、対になって使われるものなんですけれどもset で記録したものを get で取得するというものです。ここに myname というキーを指定することで先程保管したこの myname というのが呼び出されてdata の myname に記録されます。では他のものも同じように記述していきましょう。get_flash の email、それから get_flash の gender という形になります。これで各入力内容がセッションから呼び出されました。 そしてそれをビューに渡していてビューの方ではその渡された値をそれぞれ画面に表示していますので、これでおそらく上手くいくかと思います。では実際に動きを確認してみましょう。MAMP の「環境設定」でドキュメントルートがlesson05-07 の public になっていることを確認したら入力画面に移動しましょう。ここに名前とメールアドレスを指定します。そして性別を選んで「送信する」ボタンをクリックするとこのようにチェック画面に移動して名前やメールアドレスそして性別がセットされていることが分かります。これでセッションに記録されていますのでこのセッションの内容を使って例えばメールを送信するというような処理を作ったり、もしくは書き直しというような改めて入力画面に戻るような遷移を作ったりというようなことも可能になります。なおここでチェックについてなんですけれどもセッションがセットされていない場合にこのチェックが直接呼び出されるいたずらでこのように URL を直接叩いてチェックが呼び出されてしまう可能性があるかもしれません。このようなことを許してしまうとセキュリティ上のリスクにつながることがありますのでこういった場合セッションに情報が記録されていなければチェックが呼び出せないというような形にするとより安全性が高まります。 ここでは myname が必須項目そして email も必須項目ですのでこの2つの項目が入らないということはありえません。そこでここでは if のSession の get_flash のmyname が空、空または or ですね、セッションの get_flash のemail が空の場合にはこちら Response の redirect というのを使うことで画面を強制的に移動させることができます。そして今回は contact の index にredirect をさせましょうという処理になります。これで実際に確認してみましょう。URL を直接このように contact/check という URL にしてEnter を押します。するとこのように contact/index にジャンプさせられていることが分かります。もちろん名前やメールアドレスをこのように正しく記入すればチェック画面は呼び出せます。このような check を一つ入れておくことで安全性がぐっと高まりますのでぜひ活用するようにしましょう。

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

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

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

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

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

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