- #!/usr/local/bin/perl
-
- #form1.htmlからの送信データは、
- #「form1.cgi?namae=名前の文字列&namae=電話番号の文字列」となる
- #つまりフォーム間が「&」で区切られ
- #各項目(フォーム)名と内容が「=」で区切られる
-
-
- #送られてくる文字列の長さ
-
- $length=$ENV{'CONTENT_LENGTH'};
-
-
- #長さ分だけ標準入力から読み込む
-
- read(STDIN, $buffer, $length);
-
-
- #文字列ごとに分割する
-
- ($shimei,$denwa)=split( /&/ , $buffer);
-
-
- #フォーム名と内容に分割する
-
- ($name,$value1)= split( /=/ , $shimei);
- ($tel,$value2)=split( /=/ , $denwa);
-
-
- #フォームから送られたデータにスペースがあると、
- #プラス(+)に置き換えられるので、
- #スペースにしたままにする変換処理をする
-
- $value1=~ tr/+/ /;
- $value2=~ tr/+/ /;
-
-
- #フォームから送られたデータの特殊文字や日本語などは
- # % に続く2桁の16進数に置き換えられるので、
- #それを変換しなおす処理をする
-
- $value1=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
- $value2=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
-
-
-
- print "Content-type: text/html \n\n";
-
- print <<EOF;
- <HTML><HEAD><TITLE>CGI-TEST</TITLE></HEAD>
- <BODY>
- 名前 =$value1 <BR>
- <BR>
- 電話番号 =$value2
- </BODY>
- </HTML>
-
- EOF
-
- exit;
|
11.送られる文字列の長さをlengthに代入
16.stdin(標準入力)、stdout(標準出力)。
lengthの数だけ標準入力から読み込んでbufferに
21.送られてきた文字列を「&」のところで分ける
26.さらに「=」のところで分ける |