Perl入門   No.11


4.7.2 CGI におけるデータ入出力
 
 最近ではコマンドラインから入力するということは、UNIXやLinuxでも使わない限り、ほとんどなくなりました。その代わりにブラウザを介するCGIでは頻繁にユーザーからの入力が行われます。そこで、Perlで記述する場合のCGIにおいてデータ入力の方法をここに記しておきます。
 
もちろん、htmlファイルは、web設定のされているディレクトリ、cgiファイルは、cgi設定のされているディレクトリに置かなければなりません。
 
インターフェース部分での文字列入力  test.html とする。
<! test.html>
<html>
<head><title>test.html</title></head>
<body>
<FROM METHOD = "POST" ACTION="../../test.cgi">

<! キーボードから入力されたデータを word という変数に格納して、test.cgi に渡す>

<input size="20" type="text" name="word">
</FORM>
</body>
</html>
 
test.cgi
#!usr/bin/perl

# test.cgi

# 仮名漢字処理の場合は、以下のライブラリーを付け加える
require "cgi-lib.pl";
require "jcode.pl";

# ほとんどおまじない
&ReadParse;

print "Content-type:text/html\n\n";
print "<html><head><title>test.cgi</title><head>";
print "<body>";

# ここがミソ。htmlから入力されて変数wordに格納されたものが
# 受け継がれる。連想配列の形になっていることに注意
$word = $in{"word"};

# 仮名漢字の場合は、必要な文字コードに変換する。ここではeucコードに変換する
&jcode'convert(*word,"euc");

print $word;

print "</body></html>";
 
CGIのそれぞれのことについては、ここでは触れません。仮名漢字処理があるので、複雑そうに見えますが、変数の受け渡しは単純です。なお仮名漢字を扱う場合は、プログラム中にも記述したライブラリを同じディレクトリに入れるか、パスを通しておく必要があります。詳しくはCGIの解説書を見てください。