1 HTTP または HTTPS での IIS (Windows):
[
ドライブ]:¥Program Files¥FileMaker¥FileMaker Server¥HTTPServer¥Conf [
ドライブ] は FileMaker Server を展開したマスタマシンのドライブです。
1 HTTP での Apache (macOS):
/
ライブラリ/FileMaker Server/HTTPServer/htdocs 1 HTTPS での Apache (macOS):
/
ライブラリ/FileMaker Server/HTTPServer/htdocs/httpsRoot
メモ カスタム
SSL
証明書をインポートすると、データベースサーバークライアント接続でSSL
が使用され、HTTP
接続がHTTPS
にルーティングされます。ご使用のカスタムSSL
証 明書とともに、サイトのPHP
ファイルを共有するためのHTTPS
ディレクトリを使用してく ださい。6. データベースのオブジェクトフィールドに実際のファイルではなくファイル参照が保存され ている場合、レコードを作成または編集するときに、その参照されているオブジェクトが
FileMaker Pro Advanced の「Web」フォルダに保存されている必要があります。オブジェク
トを、Web
サーバーソフトウェアのルートフォルダ内の同じ相対パスの場所にコピーまたは 移動します。16
ページの「Web
上でのオブジェクトフィールドの内容の公開について」を参照してくだ さい。7. サイトまたはプログラムのセキュリティメカニズムが設定されていることを確認します。
8. Web ユーザ用に定義されているものと同じアカウントとアクセス権を使用して、サイトをテ
ストします。
9. サイトを使用可能にしてユーザに通知します。
Web
ユーザが入力するURL
には次の形式が 使用されます:
http://<
サーバー>/<
サイトパス>
1 <
サーバー>
はFileMaker Server
が存在しているコンピュータです。1 <
サイトパス>
は上記手順5
で使用したディレクトリ構造によって決定される、サイトの ホームページの相対パスです。例
メモ
PHP
ではLatin-1 (ISO-8859-1)
エンコードを使用します。FileMaker Server
はUnicode
(UTF-8)
データを返します。CLI
を使用してサイト用にデフォルトの文字エンコードを指定します。
CLI
ヘルプを参照してください。PHP
サイトには、UTF-8
またはISO-8859-1
のいずれか を指定できますが、UTF-8
が推奨されます。サイトのPHP
ファイルの<HEAD>
セクションにあ るcharset
属性に同じ設定を指定します。PHP ソリューションの展開と使用の詳細については、第9章「サイトのステージング、テスト、
および監視」を参照してください。
ご使用の
Web
サーバーのアドレスが192.168.123.101
で、サイトのホームページがc:¥Inetpub¥wwwroot¥customers¥index.php
のWeb
サーバー上にある場合、Web
ユーザ は次のようにURL
を入力します:
http://192.168.123.101/customers/index.php
FileMaker API for PHP の使用
FileMaker API for PHP
には、FileMaker
データベースに対するオブジェクト指向インター フェースを提供するPHP
クラス(FileMaker
クラス)
が実装されています。FileMaker API for PHP
を使用すると、FileMaker Pro Advanced
データベースに保存されているロジックおよび データの両方に対し、Web
上にアクセスして公開、または他のアプリケーションにエクスポー トすることができます。FileMaker API for PHP
は、FileMaker Pro Advanced
データベース内ですでに使用可能な次の機能を
PHP
コードで実行できるようにします:
1
レコードの作成、削除、編集、または複製1
検索条件の実行1
フィールドおよびレコードの入力値の制限のチェックの実行1
レイアウトの使用1 FileMaker
スクリプトの実行1
ポータルおよび関連レコードの表示1
値一覧の使用この章では、
FileMaker
クラスオブジェクトの使用方法、およびこれらの一般的な機能をPHP
ソリューションに追加するメソッドを説明します。この章は、FileMaker API for PHP
全体をカ バーするものではありませんが、主要なオブジェクトおよびメソッドを紹介します。追加情報の入手場所
FileMaker API for PHP
の詳細については、次のリソースを参照してください。すでに
PHP
エンジンのインストールおよび構成が終了し、FileMaker API for PHP
を追加するだ けの場合は、66
ページの「FileMaker API for PHP
の手動によるインストール」を参照してくだ さい。FileMaker API for PHP リファレンス
FileMaker API for PHP
をインストールしている場合は、展開したFileMaker Server
のWeb
サー バーコンポーネントでリファレンス情報を参照できます。1 IIS (Windows):
[
ドライブ]:¥Program Files¥FileMaker¥FileMaker Server¥Documentation¥PHP API Documentation¥index.html
[
ドライブ]
は展開したFileMaker Server
のWeb
サーバーコンポーネントが格納されているド ライブです。1 Apache (macOS): /
ライブラリ/FileMaker Server/Documentation/PHP API Documentation/index.html
FileMaker API for PHP に関するサポート
FileMaker API for PHP
の追加情報については、FileMaker のサポートページを参照してください。FileMaker クラスの使い方
PHP ソリューションで FileMaker クラスを使用するには、PHP コードに次の文を追加します:
require_once ('FileMaker.php');
FileMaker クラスオブジェクト
FileMaker クラスは FileMaker Pro Advanced のデータベースからデータを取得するのに使用で
きるクラスオブジェクトを定義します。FileMaker のコマンドオブジェクト
FileMaker
クラスは特定のコマンドのインスタンスを作成し、コマンドの引数を指定するのに使用する基本コマンドオブジェクトを定義します。コマンドを実行するには、
execute()
メ ソッドを呼び出す必要があります。FileMaker
クラスは次の特定のコマンドを定義します:
1 Add
コマンド1 Compound Find
コマンド1 Delete
コマンド1 Duplicate
コマンド1 Edit
コマンド1 Find
コマンド、Find All
コマンド、Find Any
コマンド1 Find Request
コマンド(Compound Find
コマンドに追加される) 1 Perform Script
コマンド重要 コマンドには
FileMaker.php
クラスに定義されている戻り値があります。たとえば、一部のコマンドは
TRUE
などの論理値またはFileMaker_Error
オブジェクトを返します。その 他のコマンドはレイアウトの「対象レコード」全体を含む場合があるFileMaker_Result
オブ ジェクトを返します。コンピュータのメモリの過負荷の問題を回避するには、使用するコマン ドの要求する戻り値に注意してください。各コマンドの戻り値の詳細については、71
ページの「
FileMaker API for PHP
リファレンス」を参照してください。クラスオブジェクト オブジェクトを使用して行う処理
FileMaker データベース データベースのプロパティの定義
FileMaker Pro Advanced データベースファイルへの接続 FileMaker API for PHP の情報の取得
コマンド レコード追加、レコード削除、レコード複製、レコード編集、検索条件実行、および スクリプト実行コマンドの作成
レイアウト データベースレイアウトの使用 レコード レコードデータの使用
フィールド フィールドデータの使用 関連セット ポータルレコードの使用
結果 検索条件から返されたレコードの処理 エラー エラーが発生したかどうかの確認
エラーの処理
ほとんどの PHP アプリケーションが実行する必要がある基本的なタスクについては、次を参照 してください:
1 74ページの「レコードの使用」
1 76ページの「FileMaker スクリプトの実行」
1 83ページの「検索条件の実行」
FileMaker API で使用するデータのデコード
PHP アプリケーションが Web サイトからデータを取得している場合、そのデータは URL エン
コードされている可能性があります。FileMaker API for PHP では、データが URL エンコードさ
れた文字列ではなく、デコードされた文字列であるものとして処理します。通常は、PHP アプ リケーションでデータを取得する場合は urldecode() 関数を呼び出すことをお勧めします。例
メモ
FileMaker API for PHP では、アンパサンド (&) 文字を含む文字列を使用することはでき
ません。FileMaker API for PHP に渡す文字列に含まれる特殊文字の前にはエスケープ文字とし てバックスラッシュを使用します。FileMaker データベースへの接続
FileMaker
クラスはサーバーまたはデータベースに接続するためにインスタンスを作成するデータベースオブジェクトを定義します。クラスコンストラクタを使用するか、
setProperty() メ
ソッドを呼び出してオブジェクトのプロパティを定義します。例
メモ
hostspec
プロパティは、デフォルトでhttp://localhost
という値になります。PHP エンジンはマスタマシンの Web サーバーコンポーネントとともにインストールされるた
め、hostspec プロパティを指定する必要はありません。$user = urldecode($_GET['user']);
$event = urldecode($_GET['event']);
サーバーに接続し、データベースの一覧を表示
:
$fm = new FileMaker();
$databases = $fm->listDatabases();
サーバー上の特定のデータベースへ接続
:
$fm = new FileMaker();
$fm->setProperty('database', 'questionnaire');
$fm->setProperty('hostspec', 'http://192.168.100.110');
$fm->setProperty('username', 'web');
$fm->setProperty('password', 'web');
ユーザ名とパスワードのプロパティによって、この接続用のアクセス権セットが決まります。
レコードの使用
FileMaker クラスはレコードを使用するためにインスタンスを作成するレコードオブジェクト
を定義します。レコードオブジェクトのインスタンスは、FileMaker Pro Advanced データベー スの 1 つのレコードを表します。レコードオブジェクトを、Add、Delete、Duplicate、およびEdit コマンドと使用して、レコード内のデータを変更します。検索コマンド (Find、Find All、
Find Any、および Compound Find) は、レコードオブジェクトの配列を返します。
レコードの作成
レコードを作成するには、次の 2 つの方法があります:
1 createRecord() メソッドを使用します (レイアウト名を指定、およびフィールド値の配列
をオプションで指定)。新規レコードオブジェクトでは個別に値を設定することもできます。createRecord() メソッドは、新規レコードをデータベースに保存しません。レコードを
データベースに保存するには、commit() メソッドを呼び出します。
例
FileMaker_Record の commit() メソッドを使用すると、エラーがない場合は $result 変数
に論理値 TRUE が割り当てられ、FileMaker データベースに新しいレコードが作成されます。エラーが発生した場合は、変数
$result に FileMaker_Error オブジェクトが含まれます。
commit() メソッドの実行後にエラーチェックを行ってください。
1 Add コマンドを使用します。 newAddCommand()
メソッドを使用し、レイアウト名およびレコードデータを持つ配列を指定して FileMaker_Command_Add オブジェクトを作成しま す。レコードをデータベースに保存するには、
execute()
メソッドを呼び出します。例
FileMaker_Command の execute() メソッドを使用すると、エラーがない場合は $result
変数に
FileMaker_Result
オブジェクトが含まれます。このオブジェクトには作成したレコードに関するすべての情報が含まれます。
エラーが発生した場合は、変数
$result
にFileMaker_Error
オブジェクトが含まれます。execute() メソッドの実行後にエラーチェックを行ってください。
レコードの複製
Duplicate コマンドを使用して既存のレコードを複製します。 newDuplicateCommand() メ
ソッドを使用し、レイアウト名および複製するレコードのレコードID
を指定して、FileMaker_Command_Duplicate
オブジェクトを作成します。その後、execute()
メソッドを 呼び出してレコードを複製します。$rec = $fm->createRecord('Form View', $values);
$result = $rec->commit();
$newAdd = $fm->newAddCommand('Respondent', $respondent_data);
$result = $newAdd->execute();