> 名前欄で、cookieを使用して再び名前を入力する手間を省くにはどの様にしたらよいのでしょうか?
rib.plに525行目辺り(と言うかどこでもいいけど)に以下追加
# レス名前用クッキーを読み込む
sub gmncook{
@COOKIE=split(/;/, $ENV{'HTTP_COOKIE'});
foreach (@COOKIE){
($name,$value) = split(/=/);
$name=~ s/ //g;
if($name eq "nikmn"){
($hn) = split(/\,/, $value);
if ($hn) {
$hn =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg;
}
last;
}
}
}
# レス名前用クッキーの発行
sub smncook {
my $ck = 31; # クッキー保存日数
$hn = shift;
($secg,$ming,$hourg,$mdayg,$mong,
$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + $res_ck*24*60*60);
$yearg += 1900;
if ($secg < 10) { $secg = "0$secg"; }
if ($ming < 10) { $ming = "0$ming"; }
if ($hourg < 10) { $hourg = "0$hourg"; }
if ($mdayg < 10) { $mdayg = "0$mdayg"; }
$month = ('Jan','Feb','Mar','Apr','May','Jun',
'Jul','Aug','Sep','Oct','Nov','Dec')[$mong];
$youbi = ('Sunday','Monday','Tuesday','Wednesday',
'Thursday','Friday','Saturday')[$wdayg];
$date_gmt = "$youbi, $mdayg\-$month\-$yearg $hourg:$ming:$secg GMT";
if ($hn) {
$hn =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg;
} else {
$hn = '';
}
print "Set-Cookie: nikmn=$hn; expires=$date_gmt\n";
# 表示する場合不都合があるから戻しておく
if ($hn) {
$hn =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg;
}
}
nik.cgi 454行目辺りに以下追加
if ($in{'hn'}) {
&smncook($in{'hn'});
} else {
&gmncook;
}
3985行目くらいに追加した
$tmp .= qq| <tr>\n|;
$tmp .= qq| <td>\n|;
$tmp .= qq|<tt>名前</tt> \n|;
$tmp .= qq|<input type="text" size="60" name="hn" value="$in{'hn'}">\n|;
$tmp .= qq| </td>\n|;
$tmp .= qq| </tr>\n|;
の上に以下を追加
$in{'hn'} = $hn unless $in{'hn'};
|