[ トップ | 一覧 | 更新履歴 ]

CGI::Lite.pm

PerlPackageModules

ブラウザからポストされたデータの取得

CGI::Lite

ブラウザからPOST、GETで渡されるパラメータを受け取るのに使います。 cookieも受け取ることができます。

    <a href="hoge.hoge/cgi-bin/hoge.cgi?para1=val1¶2=val2">

これはGET渡しになります。

    <form method="post" action="hoge.hoge/cgi-bin/hoge.cgi">
    <input type="text" name="para1" value="">
    <input type="submit" value="OK">
    </form>

ユーザがインタラクティブに入力した値をフォームで送信するようなとき、formタグで methodをpostにするとPOST渡しになります。

指定されたCGIでこのパラメータを受け取るときにCGI::Liteを使います。 CGI_Liteという名前でしたが、CGI::Liteという階層付きになりました。 CGI::グループに統合されたのか、経緯はよく知りません。パッケージの名前が変わっただけ ととらえてもよさそうです。メソッドも同じ名前だし。

CGI.pmというのもあります。こちらは入力からタグ出力までメソッドが揃ってます。 ただし、自分の場合は、出力はテンプレートを使うのと、CGI.pmの方はメソッドと引数の 関係が複雑なため、CGI.pmは使わずCGI::Lite.pmだけ使ってます。

ファイルの受け取りもできるのですが、ここでは書きません。

URLデコードもパッケージがやってくれます。

なので、

これでパラメータの受け取りは完了です。

メソッド

new

parse_form_data

    my  $cgi = CGI::Lite->new();
    my  %para = $cgi->parse_form_data();
    # my $rpara = $cgi->parse_form_data();

ハッシュで受けるとパラメータがkey:valueの対のハッシュを返します。 スカラ変数で受けるとその参照を返します。(知らなかった)

parse_cookies

    my  %cookie = $cgi->parse_cookies();
    # my $rcookie = $cgi->parse_cookies();

なんか、クッキー以外のフォームのデータも入ってる気がするが。(調査中) クッキーも受け取ることができます。

url_encode,url_decode

素(?)で呼出せます。

    my $enc = url_encode($str);

同じパラメータ名が複数ある場合

そのハッシュのメンバは配列への参照になります。

    my  %para = $cgi->parse_form_data();
    my  @opts = @{$para{opts}};

自分の使い方

CGI::Lite.pmを継承し、受け取ったパラメータをJcode.pmでコード変換、 CGI::Cookieを使ってcookieの「設定」メソッドを追加したクラス(package)を作成して使ってます。


GzuGzu (WikiWikiWeb descendant) ver 1.00 pre2
このページはGzuGzuで作成されました.
yaino.com