NAME

CTK::CGI - yet another query engine


SYNOPSIS

  use CTK::CGI;

  my $q = CTK::CGI->new;

  $q->param(name => 'Mike');
  $q->param(name => 'Junko');

  my @names = $q->param;

  $q->delete('name');

  my %query = $q->Vars;


DESCRIPTION


METHODS

new
  my $q = CTK::CGI->new;

新しいクエリーオブジェクトを作成します。 次のようにして、オプションのパラメータを指定することもできます。

  my $q = CTK::CGI->new(multipart_dir => '/tmp',
                        delimiter => "\0",
                        buffer_size => 1024,
                        get_size_limit => 102400,
                        post_size_limit => 102400,
                        upload_size_limit => 512000,
                        debug => 0,
                        );

multipart_dir: multipart/form-data でアップロードしたファイルを一時的に保存するディレクトリ(デフォルト /tmp)

一時ファイルは、CGI-(時間)(プロセス番号)::(アップロード元のファイル名) のファイル名で保存されます。

delimiter: Vars で値を取得するときの区切文字(デフォルト \0)

buffer_size: multipart/form-data で POST されたデータを読み込むバイト数(デフォルト 1024 バイト)

get_size_limit: GET で取得する最大バイト数(デフォルト 102400 バイト)

post_size_limit: POST(application/x-www-form-urlencoded) で取得する最大バイト数(デフォルト 102400 バイト)

upload_size_limit: POST(multipart/form-data) で取得する最大バイト数(デフォルト 512000 バイト)

debug: デバックオプション(デフォルト 0)

debug => 1 の場合は標準入力からクエリーを取得します。

param
  @values = $q->param('foo');

  -or-

  $value = $q->param('foo');

指定したパラメータの値を取り出します。値がない場合は、undef を返します。 パラメータを指定しない場合は、すべてのパラメータ名を配列で返します。

  @names = $q->param();

パラメータに値を追加するには

  $q->param(foo => 'value1', 'value2', 'value3');

のように記述します。 パラメータ foo が既にいくつかの値を持っている場合は、その値の後に追加されます。

Vars
  %query = $q->Vars;

  -or-

  $query_ref = $q->Vars;

すべてのパラーメータと値をハッシュで取り出します。1 つのパラメータに複数の値がある場合は、\0 (デフォルト) で区切った値になります。

upload
upload.html:
  <HTML>
  <BODY>
  <FORM METHOD="post" ENCTYPE="multipart/form-data" ACTION="upload.cgi">
  <INPUT TYPE="file" NAME="upload" SIZE="10" VALUE="">
  </FORM>
  </BODY>
  </HTML>

upload.cgi:

  $fh = $q->upload('upload');
  while (<$fh>) {
      print;
  }

FORM に記述した NAME の値をもとにアップロードしたファイル(一時ファイル)のファイルハンドルを返します。 ファイルが存在しない場合は、undef を返します。

tmpfile
  $path = $q->tmpfile('upload');

アップロードしたファイル(一時ファイル)のファイルのパスを返します。 一時ファイルが存在しない場合は、undef を返します。

file_type
  $content_type = $q->file_type('upload');

アップロードしたファイルの Content-Type を返します。multipart/form-data を解析したときの値です。

url
  $q->url();

現在の URL を返します。

remove
  $q->remove('foo');

指定したパラメータの値を削除します。

errors
  $errref = $q->errors;
  print "$_\n" for(@$erref);

  -or-

  @errors = $q->errors;
  print "$_\n" for(@errors);

発生したエラーを取り出します。


AUTHOR

Yutaka Kojima <yutaka@asmate.net>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


SEE ALSO

CTK