phpその1(DEC) > phpその2(DEC)> php10days

第9日 PHP標準ライブラリPEAR

1時限目:PEAR::DBでデータベースサーバの違いを意識しない
2時限目:PEAR::Authでセキュアなアプリケーシヨンを実現
PEARは、PHPスクリプトをベースとしたPHP標準のライブラリです。
PEARでは、実にさまざまな機能を提供していますが、その中でも特に代表的なPEAR::DB、PEAR::Authをとりあげます。
PEAR::DBは「データベース抽象化レイヤー」と呼ばれるデータベースアクセス用の共通インターフェースです。PEAR::DBを利用することで、利用するデータベースを意識する必要がなくなりますので、コードの再利用性を向上することができます。PEAR::Authは「フォーム認証」をサイトに実装するための手段を提供します。

◆◆◆◆まとめ(1時限目)◆◆◆◆

●PEAR::DBは「抽象化レイヤ」と呼ばれるインタフエースで、データベースによる仕様差を吸収し、アプリケーシヨンから統一された手順でデータベースを操作することを可能にします。
●プリペアド・ステートメントを利用することで、命令の実行効率を向上できる、パラメータのエスケープ処理を自動化できる、などメリットがあります。
●PEAR::DB上で動的にSQL命令を生成する場合には、原則として「プレスホルダ」を利用すべきです。
●出力データをクライアントにダウンロードさせるためには、コンテンツタイプとして「application/octet-stream」を、また、content-Dispositionヘッダをセットします。
★SQLiteデータベースに登録したスケジュール情報を、タブ区切りテキストの形式でダウンロード。

09サンプル(day09-1) ①schedule_download.php △ day09-1.htmlファイル(ソース)
②DB.php day09-1.htmlファイル(ソース)
③schedule.sqlite day09-1.htmlファイル(ソース)
①・アクセスすると、ダウンロードダイアログが開きます。・ダウンロードしたタブ区切りテキストファイルをMicroSoft Excelで開きます。
②DB.phpは、データベースを操作するための基本となるDBクラスやデータベース操作で発生したエラーを管理するDB_Errorクラス、結果セットを操作するためのDB_Resultクラスなどを含みます。
③「schedule.sqlite」データファイル

◆◆◆◆まとめ(2時限目)◆◆◆◆

●PEAR::Authライブラリを利用することで、フォーム認証を実現できます。フォーム認証では、自由なレイアウトでログインページを設定できるのが特徴です。
●PEAR-Authでは、ユーザ情報をファイルの他、データベースやLDAP経由で取得することができます。
●外部ファイルをアプリケーション共通でインクルードするには、auto_prepend_fileパラメータを利用すると便利です。
●.htaccessファイルを利用することで、ディレクトリ単位にパラメータを設定することができます。
●.htaccessファイルでパラメータを設定する場合には、(1)httpd.confのAllowOverrideディレクトリがAllである、(2).htaccessで設定可能なパラメータであることを確認してください。
★「スケジュール帳」の様なアプリケーションは、当然、関係のない第3者には見せたくないものです。そこで、アプリケーションに対してアクセス制限をかけます。

09サンプル(day09-2) ①MyAuth.phpファイル day09-2.htmlファイル(ソース)
  ②login.phpファイル day09-2.htmlファイル(ソース)
  ③.htaccessファイル day09-2.htmlファイル(ソース)
  ④schedule_read.phpフ △ day09-2.htmlファイル(ソース)
①・ログインページを生成するユーザ定義関数・認証を発行・未認証時に以降の処理を強制終了。

◆◆◆◆まとめ(2時限目)◆◆◆◆

09サンプル(day09-2-2) ①about.htmlファイル  △ day09-2-2.htmlファイル(ソース)
①パスワード