Ruby で CGI > 送受信_環境変数 ENV > 問題
閲覧者のパソコンに、その閲覧者の訪問回数を記録して、連結画像として表示するカウンターを作ってください。
♪
♪
閲覧者の cookie からカウント数を読み取り、1を足して、再び cookie として送り込みます。
#!/usr/local/bin/ruby
countimg = "count.gif"
Fonts = Dir.glob("font/*.*").sort
count = 0
count = $1.to_i if /\bCKCOUNT=(\d+)\b/ =~ ENV['HTTP_COOKIE'].to_s
count += 1
a = ["convert","+append"]
for n in ("%03d" % count).split(//) do
a += [ Fonts[n.to_i] ]
end
a += [countimg]
r = system(*a) rescue false
countimg = Fonts[0] unless r
Process.waitall
cookie = "CKCOUNT=#{ count }; "
cookie += ( Time.now + 60*60*24*90 ).gmtime.strftime("expires=%a, %d-%b-%Y %H:%M:%S %Z; ")
cookie += "path=/; "
print <<EOS
Content-Disposition: filename="#{ ("%03d" % count) }.gif"
Content-type: image/gif
Content-Length: #{ File.size( countimg ) }
Set-Cookie: #{ cookie }
EOS
f = File.open( countimg ,"rb")
STDOUT.binmode
while line = f.gets do
print line
end
f.close
以上です。