#!/usr/bin/perl
#=================================================
# 中部楽器技術専門学校Q&Aリスト表示プログラム
# Date : 2005/03/18
# Programmed by Hirohisa Nagai
# nagai@gracy.info
# Gracy Technology Inc.
# http://www.gracy.co.jp/
#=================================================
# NTパス用
$0 =~ /^(.*[\\])/;
chdir($1);
require '../lib/qa_ini.cgi';
require '../lib/jcode.pl';
#++++++++++++++++++++++++++++++++++++++++ 設定はここまで +++
if($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
}
else {
$in = $ENV{'QUERY_STRING'};
}
@formdata = split(/&/,$in);
foreach(@formdata) {
($name,$value) = split(/=/, $_);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
&jcode::convert(\$value,'sjis');
$value =~ s/</g;
$value =~ s/>/>/g;
$value =~ s/\"/"/g;
$value =~ s/\n//g;
$value =~ s/\,/‚/g;
$FORM{$name} .= "\0" if(defined($FORM{$name}));
$FORM{$name} .= $value;
}
if($FORM{'mode'} eq 'confirm') {
&confirm;
}
elsif($FORM{'mode'} eq 'regist') {
®ist;
}
else {
&list_view;
}
#++++++++++++++++++++++++++++++++++++++ リスト表示 +++
sub list_view {
if(!open(IN,"$list_html")) { &msg('エラー!!', 'スキンファイルのオープンに失敗しました。
[ confirm_html ]'); }
@SKIN = ;
close(IN);
$skin_html = '';
foreach(@SKIN) {
chomp($_);
$skin_html .= "$_\n";
}
($header, $list, $middle, $msg_view, $footer) = split(//, $skin_html, 5);
$list_body = '';
if(!open(IN,"$faq_file")) { &msg('エラー!!', 'データファイルの読み込みに失敗しました。', 0); }
@DATA = ;
close(IN);
shift(@DATA);
# 対象データの抜き出し
foreach(@DATA) {
($data_no, $view_flg, $category, $name, $furi, $zip, $ken, $add, $bld, $mail, $age, $sex, $job, $kubou1, $kibou2, $faq_title, $faq_msg, $reply_msg, $reply_charge,$filename) = split(/\,/, $_, 20);
chomp($filename);
if($view_flg eq '0') {
push(@TARGET, "$_");
}
}
@DATA = @TARGET;
@TARGET = ();
$start = $FORM{'page'} + 1;
$end = $FORM{'page'} + $list_num;
$i = 0;
foreach(@DATA) {
$i++;
if($i < $start) { next; }
if($i > $end) { last; }
($data_no, $view_flg, $category, $name, $furi, $zip, $ken, $add, $bld, $mail, $age, $sex, $job, $kubou1, $kibou2, $faq_title, $faq_msg, $reply_msg, $reply_charge, $filename) = split(/\,/, $_, 20);
chomp($filename);
$faq_msg =~ s/\r/
/g;
$reply_msg =~ s/\r/
/g;
if($category eq '0') {
$category_img = 'icon1.gif';
}
elsif($category eq '1') {
$category_img = 'icon2.gif';
}
elsif($category eq '2') {
$category_img = 'icon3.gif';
}
else {
$category_img = 'icon4.gif';
}
$list_title = "$faq_title";
# 一覧部分の整形
$list_body .= $list;
$list_body =~ s/%title%/$list_title/;
$list_body =~ s/%category%/$category_img/;
if($i % 2 == 0) { $list_body =~ s/%bg_color%/bg_brown_l\.gif/; } else { $list_body =~ s/%bg_color%/bg_brown\.gif/; }
# 回答部分の整形
$msg_body .= "\n";
$msg_body .= $msg_view;
$msg_body =~ s/%q_title%/$faq_title/;
$msg_body =~ s/%q_msg%/$faq_msg/;
$msg_body =~ s/%a_msg%/$reply_msg/;
$msg_body =~ s/%a_charge%/$reply_charge/;
if($filename ne "") {
$src = <
IMG
}
else { $src = ""; }
$msg_body =~ s/%src%/$src/;
}
$past = $FORM{'page'} - $list_num;
if($FORM{'page'} ne '' && $FORM{'page'} ne '0') {
$prev = <
EOH
}
if($end < @DATA) {
$next = <
EOH
}
$middle =~ s/%prev%/$prev/;
$middle =~ s/%next%/$next/;
print "Content-type: text/html\n";
print "$cookie_set\n";
print "$header";
print "$list_body";
print "$middle";
print "$msg_body";
print "$footer";
exit;
}