#!/usr/bin/perl
#setc.cgi
#アンケート用のクッキーを設定する。
require './jcodeLE.pl';
require './prei.cgi';
&winit;&jikan;
&init;&decode;
if($setc){
&err("リストの表\示件数が有効な値ではありません。") if($lm <= 0);
&err("発言の表\示件数が有効な値ではありません。") if($pm <= 0);
&err("クッキーの有効日数が有効な値ではありません。") if($days <= 0);
&setcookie;
}else{
&html;
}
exit;
##################################################
sub init{
$title = 'クッキーの設定';
$retlink = "設定し直す"; #エラーから戻る時のリンク
#以下はデフォルト値
$lm = 50; #リストの表示件数
$pm = 15; #発言の表示件数
$days = 10; #クッキーの有効日数
}
##################################################
sub html{ #フォーム入力画面
print "Content-type: text/html\n\n";
print <<"_HTML_";
$title
$metacode
$bodys
あなたのブラウザにクッキーを設定します。
※CGIの引数にこれらの値がある時は、クッキーは無視されます。
_HTML_
print $original;#この行だけは消さないでっ!!
}#html END
##################################################
sub setcookie{ #クッキーを出力
my($n,$sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$ww,$mon1,$expires,$cook);
$n = $days*60*60*24; #有効期限までの秒数
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime($times+$n);
$ww = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[$wday];
$mon1 = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)[$mon];
$year += 1900;
$expires = sprintf("%s, %2d-%s-%02d %02d:%02d:%02d GMT",$ww,$mday,$mon1,$year,$hour,$min,$sec);
print "Content-type: text/html\n"; #ヘッダ
$cook="$c_lm\:$lm";
print "Set-Cookie: $cgidir/$cgi_list=$cook; expires=$expires\n";
$cook="$c_pm\:$pm";
print "Set-Cookie: $cgidir/$cgi_log=$cook; expires=$expires\n";
print "\n";
print <<"_HTML_";
$title
$metacode
$bodys
クッキー設定完了
以下の内容でクッキーが設定されました。
リストの表\示件数:$lm
発言の表\示件数:$pm
クッキーの有効日数:$days日
_HTML_
print $original;#この行だけは消さないでっ!!
}#setcookie END
##################################################
sub decode{ #一般的なデコード&変数への代入
my($buffer);
if($ENV{'REQUEST_METHOD'} eq "POST"){
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else{
$buffer = $ENV{'QUERY_STRING'};
}
&decodearg($buffer,$cgi_list);
$lm = $COOKIE{'lm'} if($COOKIE{'lm'} > 0);
&decodearg($buffer,$cgi_log);
$pm = $COOKIE{'pm'} if($COOKIE{'pm'} > 0);
$setc = $FORM{'setc'};
if($setc){
$lm = $FORM{'lm'};
$pm = $FORM{'pm'};
$days = $FORM{'days'};
}
}#decode END