
#●
#---------------------------------------------------------------------------------------
# 名称     | GetData
# Version  | 1.00
# 処理名   | 標準データ入力処理
# 動作内容 | フォームから入力されたデータの取得
# 引数     | なし
# 戻り値   | なし(%in)($preview..プレビュー命令)(@DELETE..削除番号)
#
sub GetData {

	read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); # 入力

	@pairs = split(/&/,$buffer);
	foreach $pair (@pairs) {

		($key,$val) = split(/=/,$pair);
		$key =~ tr/+/ /;
		$key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
		$val =~ tr/+/ /;
		$val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;

		&jcode'h2z_sjis(*val); # 半角カナ→全角(SJIS)変換
		&jcode'convert(*val,'sjis'); # SJIS変換

		if ($key eq 'preview') { $preview = 1; next; } # プレビュー処理の検知
		elsif ($key =~ /Next:(\d+)/) { $in{'page_control'} = $1; last; } # 次のページの読み飛ばし行数
		elsif ($key eq 'delete') { push(@DELETE,"$val\n"); next; } # 削除番号を取得

		$val =~ s/\t//g; # タブコードを無効
		$val =~ s/\r\n/\r/g; # Win → Mac (文中の改行はCRとする/行の終わりはLF)
		$val =~ s/\n/\r/g; # Unix → Mac

		$val =~ s/&/&amp;/g; # タグ禁止
		$val =~ s/"/&quot;/g;
		$val =~ s/</&lt;/g;
		$val =~ s/>/&gt;/g;

		$in{$key} = $val; # 入力データは%inへ
	}

}#End_of_GetData

