NAME
Tripletail::Form - フォーム情報
SYNOPSIS
my $form = $TL->newForm;
$form->set(Command => 'DoDispList');
$TL->location(
$form->toLink('foo.cgi'));
# Location: http://....../foo.cgi?Command=DoDispList
DESCRIPTION
CGIへのクエリ情報を保持するクラス。 一つのキーに対し、1つ以上の値を持つ。
METHODS
$TL->newForm
-
$form = $TL->newForm $form = $TL->newForm(a => 1, b => [2, 20]) $form = $TL->newForm({a => 1, b => [2, 20]}) $form = $TL->newForm('http://foo.com/?a=1&b=2&b=20')
Tripletail::Form オブジェクトを作成。 三番目の形式ではURLからクエリ情報がデコードされる。
- const
-
$form->const
このメソッドを呼び出すと、以後フォームデータの変更は不可能となる。
- isConst
-
$form->isConst
フォームオブジェクトに対して const メソッドが呼ばれたかどうかを返す。
- clone
-
$NewForm_obj = $form->clone
フォームオブジェクトの複製を返す。複製されたフォームオブジェクトは const でない。
- addForm
-
$form->addForm($another_form)
フォームに別のフォームデータを追加する。同じキーが存在した場合、 そのキーのデータは置き換えられる。
- getKeys
-
@keys = $form->getKeys
フォームのキー一覧を返す。ここで返すキーには、アップロードされたファイ ルに付けられたものは含まない。
- get
-
$value = $form->get($key) $value = $form->get($key, $joinstr)
指定したキーの値を $joinstr で結合して返す。$joinstr省略時は "," が使用 される。$key が存在しない場合は undef を返す。ファイルのキーを指定した 場合も undef を返す。
- getValues
-
@values = $form->getValues($key)
指定したキーの値を配列で返す。 $key が存在しない場合は () を返す。
- getSlice
-
%data = $form->getSlice(@keys)
指定した複数キーに対して、キーと値が1つなら値そのものを、値が複数なら 複数の値の配列へのリファレンスのペアを、ハッシュとして返す。 存在しないキーは無視される。
- getSliceValues
-
@values = $form->getSliceValues(@keys)
指定した複数キーに対して、値が1つなら値そのものを、値が複数なら 複数の値の配列へのリファレンスを対応させて、配列として返す。 存在しないキーに対しては、それに対応する値はundefになる。
- lookup
-
$flag = $form->lookup($key, $value)
指定されたキーに指定された値があれば、1を。そうでなければundefを返す。 $keyが存在しなくてもエラーとはならない。
- set
-
$form->set($key => $value, $key2 => $value2, ...) $form->set($key => \@value, $key2 => \@value2, ...)
指定されたキーに、指定された値をセットする。 以前の値は失われる。(上書きされる)
- add
-
$form->add($key => $value, $key2 => $value2, ...) $form->add($key => \@value, $key2 => \@value2, ...)
指定されたキーに、指定された値を追加する。 以前の値は失われない。(追加される)
- exists
-
$flag = $form->exists($key)
キーが存在すれば1を、そうでなければundefを返す。 ファイルの確認には使えない(常に偽となる)。
- remove
-
$form->remove($key, $value)
指定されたキーから、指定された値を取り除く。 指定されたキーや値がない場合は何もしない。
- delete
-
$form->delete($key)
指定されたキーを削除する。キーが存在しない場合は何もしない。
- existsFile
-
$flag = $form->existsFile($key)
アップロードキーが存在すれば1を、そうでなければundefを返す。 ファイルが実際にアップロードされたかどうかに関わらず, キーの存在だけを 判断します.
- isUploaded
-
$flag = $form->isUploaded($key)
キーに対応するファイルがアップロードされていれば1を、 そうでなければundefを返す。
- getFile
-
$iohandle = $form->getFile($key, [$from, [$to]]);
キーに対応するIOハンドルを取り出す。ファイルアップロード時のみ取得でき る。ファイルアップロードではなかった場合や、キーが存在しない場合は undef を返す。
第二引数が指定されている場合は、それを変換元の文字コードと見做して文字コード変換 を行う。第三引数が指定されている場合は、それを変換先の文字コードと見做す。第三引 数が省略された場合は UTF-8 が指定されたものと見做す。
このメソッドは、アップロードキーが存在しつつも実際のファイルが存在しな かった場合、つまり Web ブラウザ上でファイルを選択せずにフォームを送信し たような場合には、undef ではなく空のファイルハンドルを返す。
- setFile
-
$form->setFile($key, $iohandle);
指定したキーにIOハンドルをセットする。
- getFileKeys
-
@keys = $form->getFileKeys();
アップロードされたファイルのキー一覧を返す。
- getFileName
-
$filename = $form->getFileName($key)
キーに対応するファイル名を取り出す。ファイルアップロード時のみ取得でき る。ファイルアップロードではなかった場合や、キーが存在しない場合は undef を返す。
アップロードキーが存在しつつも実際のファイルが存在しなかった場合、つまり Web ブラウザ上でファイルを選択せずにフォームを送信したような場合には、 undef ではなく空のファイルハンドルを返す。
ファイル名はベース名部分のみを返す(0.45以降)。 (以前の動作に関しては "compat_form_getfilename_returns_fullpath" in Tripletail を参照。)
- getFullFileName
-
$filename = $form->getFullFileName($key)
"getFileName" と同様だが、(提供されている場合)フルパスで返す。
(0.45 以降)
- setFileName
-
$form->setFileName($key => $value)
指定したキーにファイル名をセットする。
- setLink
-
$form->setLink('http://.../?a=1&b=2')
URLからデコードして得られたキーと値のペアで、古い値を置き換える。
- addLink
-
$form->addLink('http://.../?a=1&b=2')
URLからデコードして得られたキーと値のペアを追加する。
- setFragment
-
$form->setFragment($fragment) $form->setFragment(undef)
URLのフラグメントを設定する。これはtoLinkの結果に影響する。
- getFragment
-
$fragment = $form->getFragment;
URLのフラグメントを取得する。
- toLink
-
$url = $form->toLink($base)
フォームデータをURLの形式に変換し返す。$baseを指定すると、そのURLの後に 「?key=value」形式でデータを追加する。$baseを省略もしくはundefを指定すると、 自分自身へのリンクを返す。
URLが指し示す先はTLフレームワークで作成されたアプリケーションであると見なし、 文字コード判別用のデータを付与する。 TLフレームワークで作成されたアプリケーション以外へのリンクを作成する場合は、 toExtLinkメソッドを利用すること。
フラグメントが存在する場合は、それが #xxx の形でURLの中に組み込まれる。
- toExtLink
-
$url = $form->toExtLink($base) $url = $form->toExtLink($base, $code)
フォームデータをURLの形式に変換し返す。$baseを指定すると、そのURLの後に 「?key=value」形式でデータを追加する。$baseを省略もしくはundefを指定すると、 自分自身へのリンクを返す。
$codeで文字コードを指定すると、文字コードを変換してからURLエンコードする。 指定しなかった場合は UTF-8 コードで出力する。
フラグメントが存在する場合は、それが #xxx の形でURLの中に組み込まれる。
- toHash
-
my $hash = $form->toHash(); # $hash is like {a => 1, b => [2, 20]}
フォームデータを HASH ref の形式で返す。
- haveSessionCheck
-
$result = $form->haveSessionCheck($sessiongroup) $result = $form->haveSessionCheck($sessiongroup, $issecure)
指定したセッショングループのセッションIDを利用したキーが現在フォームに埋め込まれているかを確認する。 埋め込まれていれば、1を。いなければ、undefを返す。 $Template->addSessionCheck とペアで使用する。
指定したセッショングループのIniで設定するcsrfkeyを必要とする。未設定の場合エラーとなる。 csrfkeyとセッションIDを利用してキーを作成する為、csrfkeyはサイト毎に違う値を用い、外部に漏れないようにする事。
使用中のセッションの mode が 'double' の場合は、 第2引数に 0 または 1 を指定すると、http側、https側を指定できる。 省略した場合は、そのときの通信が http/https のどちらであるかによって選択される。
SEE ALSO
AUTHOR INFORMATION
Copyright 2006 YMIRLINK Inc.
This framework is free software; you can redistribute it and/or modify it under the same terms as Perl itself
このフレームワークはフリーソフトウェアです。あなたは Perl と同じライセンスの 元で再配布及び変更を行うことが出来ます。
Address bug reports and comments to: tl@tripletail.jp
HP : http://tripletail.jp/