#!/usr/local/bin/perl #--------------------------------------------------# #ホームページのURL $homepage = 'http://www.xxx.or.jp/~user/'; #実際のホームページファイルのURL $enter = 'http://www.xxx.or.jp/~user/enter.html'; #データファイルの設定 $file = './zcount.dat'; $file1 = './zcount1.dat'; $file2 = './zcount2.dat'; #--------------------------------------------------# ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; if ($sec < 10) { $sec = "0$sec"; } if ($min < 10) { $min = "0$min"; } if ($hour < 10) { $hour = "0$hour"; } $month = ($mon + 1); if ($month < 10) { $month = "0$month"; } if ($mday < 10) { $mday = "0$mday"; } foreach (split(/\;/,$ENV{'HTTP_COOKIE'})) { ($name, $value) = split(/=/); $name =~ s/ //g; $COOKIES{$name} = $value; } ($ID,$COUNT) = split(/:/,$COOKIES{$homepage}); ($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + 30*24*60*60); $y0="Sunday"; $y1="Monday"; $y2="Tuesday"; $y3="Wednesday"; $y4="Thursday"; $y5="Friday"; $y6="Saturday"; $youbi = ($y0,$y1,$y2,$y3,$y4,$y5,$y6) [$wdayg]; $m0="Jan"; $m1="Feb"; $m2="Mar"; $m3="Apr"; $m4="May"; $m5="Jun"; $m6="Jul"; $m7="Aug"; $m8="Sep"; $m9="Oct"; $m10="Nov"; $m11="Dec"; $month = ($m0,$m1,$m2,$m3,$m4,$m5,$m6,$m7,$m8,$m9,$m10,$m11) [$mong]; $date_gmt = "$youbi, $mdayg\-$month\-$yearg $hourg:$ming:$secg GMT"; if ($COUNT eq '') { $COUNT = 0; $first = 1; @char = ('a'..'z','A'..'Z'); srand(time|$$); foreach (0..1) { { local(@temp); push(@temp,splice(@char,rand(@char),1)) while @char; @char = @temp; } $rndstr = $char[($_)] . $rndstr; } $cook = "$rndstr$year$month$mday$hour$min$sec\:$COUNT"; } else { $COUNT++; $cook = "$ID\:$COUNT"; } if (!open(IN,"$file")) { &error(R0); } $C0 = ; chop($C0) if $C0 =~ /\n/; close(IN); $C0++; if (!open(OUT,">$file")) { &error(W0); } print OUT $C0; close(OUT); if ($first) { if (!open(IN,"$file1")) { &error(R1); } $C1 = ; chop($C1) if $C1 =~ /\n/; close(IN); $C1++; if (!open(OUT,">$file1")) { &error(W1); } print OUT $C1; close(OUT); } else { if (!open(IN,"$file2")) { &error(R2); } $C2 = ; chop($C2) if $C2 =~ /\n/; close(IN); $C2++; if (!open(OUT,">$file2")) { &error(W2); } print OUT $C2; close(OUT); } print "Set-Cookie: $homepage=$cook; expires=$date_gmt\n"; print "Location: $enter\n\n"; sub error { print "ERROR$_[0]"; exit; }