#!/usr/local/bin/perl # ★注意:このソースは UTF-8 にて保存 # ---------------------------------------------------------------------- # 外字入力アプレットの結果表示CGI # フォーム入力されたデータを格納 if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } # デバッグ用ログ(test_input.txt)を出力する場合は下記を「1」にする $debug = 0; # ローカルタイムのスタンプ用 ($sec,$min,$hour,$day,$mon,$year,$wday,$yday)=localtime(time); $year+=1900; $mon++; # 入力されたデータを文字列に代入・コード変換する @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } # 入力文字を取り出し $EudcText = $FORM{'EudcText'}; # 入力確認用のHTLM編集 $html = << "HTML"; <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>外字テスト</title> </head> <body> <H3>入力した外字文字</H3> <!-- 外字表示アプレット --> <P> <object classid = "clsid:CAFEEFAC-0015-0000-0004-ABCDEFFEDCBA" codebase = "http://java.sun.com/update/1.5.0/jinstall-1_5_0_04-windows-i586.cab#Version=5,0,40,5" WIDTH = 600 HEIGHT = 120 > <PARAM NAME = CODE VALUE = eudcStaticText.class > <PARAM NAME = ARCHIVE VALUE = ./jclasses/eudcApl_v101.jar > <param name = "type" value = "application/x-java-applet;jpi-version=1.5.0_04"> <param name = "scriptable" value = "false"> <PARAM NAME = STL VALUE="size=30"> <PARAM NAME = STR VALUE="$EudcText"> </object> <!-- 設定用のアプレット --> <object classid = "clsid:CAFEEFAC-0015-0000-0004-ABCDEFFEDCBA" codebase = "http://java.sun.com/update/1.5.0/jinstall-1_5_0_04-windows-i586.cab#Version=5,0,40,5" WIDTH = 0 HEIGHT = 0 > <PARAM NAME = CODE VALUE = eudcSetting.class > <PARAM NAME = ARCHIVE VALUE = ./jclasses/eudcApl_v101.jar > <PARAM NAME = NAME VALUE = "eudcSetting" > <param name = "type" value = "application/x-java-applet;jpi-version=1.5.0_04"> <param name = "scriptable" value = "false"> <PARAM NAME = URL VALUE="http://gaiji.jjworkshop.com/cgi-bin/gaiji/nph-cgij2.cgi"> <PARAM NAME = PORT VALUE="80"> </object> <p><A href="javaScript:history.back();">[戻る]</A></p> </body> </html> HTML # HTML 出力 print "Content-type: text/html\n\n"; print $html; # 入力データをロギング (デバッグ用) if ($debug == 1) { $date=sprintf("%04d/%02d/%02d-%02d:%02d:%02d",$year,$mon,$day,$hour,$min,$sec); open(F,">> test_input.txt"); print F "$date - $EudcText\r\n"; close(F); } exit;