#!/usr/local/bin/perl

#Main Program

#HTMLヘッダー部の出力
&output_header_html;

#FORMデータの読み取り
&read_form_data;

#HTMLフォーム部の出力
&output_form_html;

#HTMLデータ部の出力
&output_data_html;

#HTMLフッター部の出力
&output_futter_html;

#Sub Program

#HTMLヘッダー部の出力サブルーチン
sub output_header_html
{
print <<EOT;
Content-type: text/html

<HTML>
<HEAD>
    <TITLE>Easy DataBase</TITLE>
</HEAD>
<BODY>
<br><br><br><br>
<H2>簡易データベース</H2>
<HR>
EOT
}

#FORMデータの読み取りサブルーチン
sub read_form_data{
    read (STDIN, $form_str, $ENV{"CONTENT_LENGTH"});
                # ENV:環境変数
                # CONTENT_LENGTH:HTTPプロトコル情報の文字数
    $form_str =~ tr/+/ /;
    my @line = split (/&/, $form_str);
    foreach $x(@line){
        my ($index, $value) = split (/=/, $x);
        $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg;
        $value =~ s/</&lt;/g;
        $value =~ s/>/&gt;/g;
        $form_data{$index} = $value;
    }
}


#HTMLフォーム部の出力サブルーチン
sub output_form_html
{
    print <<EOT;
    <FORM METHOD="post" ACTION="easydb.cgi">
        検索範囲<BR>
        商品番号<INPUT TYPE="text" SIZE="10" NAME="start_num">〜
        商品番号<INPUT TYPE="text" SIZE="10" NAME="end_num">まで<BR>
        <INPUT TYPE="submit" VALUE="検索開始">
        <INPUT TYPE="reset" VALUE="リセット">
    </FORM>
EOT
}
            # METHOD:情報を送る方法を post と指定
            # ACTION:ボタンが押されたときのとび先 URL もOK
            # INPUT:入力欄を作る 
            # TYPE="submit":送信
            # VALUE:ボタンの中の文字
            # TYPE="reset":入力欄のクリアー


#HTMLデータ部の出力サブルーチン
sub output_data_html
{

    print <<EOT;
<HR>
検索結果
<BR><BR>
<TABLE BORDER='1'>
<TR>
<TD>
商品番号
</TD>
<TD>
商品名
</TD>
EOT
    open (FH,"easydb.txt");

    if ($form_data{'start_num'}>"1010" or 
        $form_data{'end_num'}>"1010"){
        print ("商品番号が大きいです。商品番号は1010以下です\n");
    }
    else{

    if ($form_data{'start_num'}<"1000" or 
        $form_data{'end_num'}<"1000"){

        if ($form_data{'start_num'}!="" or $form_data{'end_num'}!=""){
        print ("商品番号が小さいです。商品番号は1001以上です\n");
    }}
    else{



    foreach (<FH>)
    {
        ($key,$value) = split (/,/);
        if ($key >= $form_data{'start_num'} and $key <= $form_data{'end_num'})
        {
            print ("<TR>\n");
            print ("<TD>$key</TD>\n");
            print ("<TD>$value</TD>\n");
            print ("</TR>\n");
        }
    }
    print ("</TABLE>\n");
    print ('以上');
    print ("\n");
    print ("<HR>\n");
    close (FH);
}}}

#HTMLフッター部の出力サブルーチン
sub output_futter_html
{
    print ("<br><br><br><br>");
    print ("</BODY>\n");
    print ("</HTML>\n");    
}

exit;