2010年8月6日金曜日

文字化けしないCGI(ShiftJis編)

CGIで日本語を扱うと文字化けの可能性が多いです。 ここでShiftJisというWindowsではおなじみの文字コードで手軽にデータ交換を行う方法のサンプルです。

なお、この演習を行う前に以下のファイルのアップロードとdataフォルダの作成及び書き込み権限の設定をお願いします。

form.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=shiftjis" /> 
<meta http-equiv="Content-Language" content="ja" /> 

<title>入力フォーム</title> 
 
</head> 
 
<body> 
 
<div> 
<h1>ファイル名を入力して下さい。</h1> 
 
<form action="./test.cgi" method="post"> 
<p>データ1:<input type="text" name="data1" size="30" /><input type="text" name="data2" size="30" /><input type="submit" value="書込" /></p> 
</form> 
</div> 
 
</body> 
</html> 


test.cgi
#!/usr/bin/perl
use CGI;
my $q = new CGI;

my $data1 = $q->param('data1');
my $data2 = $q->param('data2');

open ($FH, ">> data/data.txt");
print $FH $data1.','.$data2."\n";
close $FH;


print $q->header(-type =>'text/html');

print '<html><head></head><body>Data write!</body></html>';

0 件のコメント:

コメントを投稿