
[ このメッセージへの返事 ]
[ 返事を書く ]
[ home.html ]

投稿者:
68user @ 202.230.39.9 on 97/6/21 01:46:49
In Reply to: Re: やっぱだめだ
posted by 68user @ 202.230.39.9 on 97/6/21 01:01:09
標準入力からは
content=書き込み内容
という形でデータがやって来ます(name=contentとしたから)。
CGIを呼び出すHTMLを
<input type="text" name=name size=20>
<input type="text" name="mail_addres" size=20>
<textarea name=content cols=40 rows=5>
</textarea>
と書けば、
name=68user&mail_address=j5306050@educ.cs.gunma-u.ac.jp&content=書き込み内容
となるので、($name,$m_addr,$content) = split('&',$str);
などとして項目ごとに分割します。
スペースは`+'に、日本語や!"#$%&'などの記号は%[0-9a-fA-F]という形に
エンコードされてるかもしれないので(GET形式ならエンコードされてる
ってことは知ってるんだけど、POST形式はよくわからん)、
$str =~ tr/+/ /;
$str =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg;
という形でデコードします。ちなみに、標準入力から読み込んで
標準出力に出力、ということができるなら言語はperlに限りません。
CでもC++でもcshスクリプトでもshスクリプトでもいいです。
perlは遅いので、(もし速度に不満があれば)perlで雛型を作って
Cにコンバートするというのがいいかも。
これらの知識はこの1週間で得たことなので、しつこいようですが
あんまり信用しないでね。
やっぱり頭のなかだけで考えたら、書き忘れていることが
たくさんあるなぁ。多重自己レス失礼しました。

|