新規記事投稿 フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: jcode.pl一本で情報を渡してみたい
Date: 1999/01/20 11:06:50
Reference: mesh.program/00586

1月19日に、三葉工房の管理者さんは書きました。

> cgi-libさえあれば,当然,inputからの情報を渡す事が出来ます。

というか、jcode.plは変数中の文字列の文字コードを変換するライブラリですので、
inputからの情報を受け取ることはできません。
(なので、Subjectにあるような「jcode.pl一本で情報を渡してみたい」ということは
 できませんよ。)

inputからの情報を受け取る場合は必ず、
cgi-libを使うか
にあさん作のhttp.pl(うぇぶ会議室に付いています)を使うか
自分でコーディングする(ライブラリ等を使わずにその処理を直接書く)
必要があります。

>(inputでは,なく***cgi?***=***と言うジャンプには,ReadParseは,
>利用出来ないのですか。その同一スクリプト内においてのジャンプリンクの方法
>も教えていただきたいです。)

三葉工房の管理者さんは特有の方言が多いですね。(^^;;
上記の文の「ジャンプリンク」というのはなんでしょうか。

なんとなく言いたいことはわかりましたので、少し解説しますと
<FORM ACTION="xxx.cgi" METHOD="POST">でCGIを呼び出したときは
<INPUT>で渡したデータはSTDIN(標準入力)にあるので、

	if ($ENV{'REQUEST_METHOD'} eq 'POST') {
		$len = $ENV{'CONTENT_LENGTH'} + 0;
		read(STDIN, $args, $len);
	}

上記のような処理が必要になります。

で、<FORM ACTION="xxx.cgi" METHOD="GET">でCGIを呼び出したときや、
URLに "***cgi?***=***" を指定して呼び出したときは、
データは $ENV{'QUERY_STRING'}に入っています。

なので、データが両方にあるときは、両方のやり方でデータを取得すればいいのですが、
ReadParseでは、どちらかしかやっていないのではないですか。

その点、http.plのhttp_args関数はちゃんと両方からデータを拾ってくれるので
世話なしで便利です。(#^_^#)