| #--------------------------------------------------------------------------------------------------------------------
# [cookie発行]
# -> cookieを発行する(set_)
#
sub set_ {
# URLエンコード
$c_name = $name;
$c_email = $email;
$c_name =~ s/(\W)/'%'.unpack("H2", $1)/ego;
$c_email =~ s/(\W)/'%'.unpack("H2", $1)/ego;
if($_[0] eq "I"){$kday=1826;}else{$kday=30;}
($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + $kday*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($SEL_C){$Csel=",sel:$sel";}else{$Csel="";}
if($TXT_C){$Ctxt=",txt:$txt";}else{$Ctxt="";}
$cook="name\:$c_name\,email\:$c_email\,url\:$url\,delkey\:$delkey\,pub\:$FORM{'pub'}\,ico\:$CICO\,font\:$font\,hr\:$hr$Csel$Ctxt";
if($_[0] eq "P") {
print"Set-Cookie: $s_pas=$s_pas; expires=$date_gmt\n";
} elsif($_[0] eq "M") {
print"Set-Cookie: Cmin=$FORM{'min'}; expires=$date_gmt\n";
} elsif($_[0] eq "I") {
print"Set-Cookie: UID=$_[1]; expires=$date_gmt\n";
} else {
print "Set-Cookie: CBBS=$cook; expires=$date_gmt\n";
}
}
#--------------------------------------------------------------------------------------------------------------------
# [cookie取得]
# -> cookieを取得する(get_)
#
sub get_ {
$cookies = $ENV{'HTTP_COOKIE'};
@pairs = split(/;/,$cookies);
foreach $pair (@pairs) {
($NAME, $value) = split(/=/, $pair);
$NAME =~ s/ //g;
$DUMMY{$NAME} = $value;
}
if($_[0] eq "P") {
if($DUMMY{"$s_pas"}) {
$FORM{"P"}=$DUMMY{"$s_pas"};
}
} elsif($_[0] eq "M") {
if($DUMMY{'Cmin'}) {
$FORM{"min"} = $DUMMY{'Cmin'};
} else {
$FORM{"min"} = 0;
}
} elsif($_[0] eq "I") {
if($DUMMY{'UID'}) {
$pUID=$DUMMY{'UID'};
} else {
$pUID="n";
}
} else {
@pairs = split(/,/,$DUMMY{'CBBS'});
foreach $pair (@pairs) {
($name, $value)= split(/:/, $pair);
$COOKIE{$name} = $value;
}
$c_name=$COOKIE{'name'};$c_email=$COOKIE{'email'};
$c_url =$COOKIE{'url'}; $c_key =$COOKIE{'delkey'};
$c_pub =$COOKIE{'pub'}; $c_ico =$COOKIE{'ico'};
$c_font=$COOKIE{'font'};$c_hr =$COOKIE{'hr'};
if($SEL_C){$c_sel=$COOKIE{'sel'};}
if($TXT_C){$c_txt=$COOKIE{'txt'};}
# URLデコード
$c_name =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/ego;
$c_email =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/ego;
}
}
|