シンプルカウンター
はじめに
最もシンプルなアクセスカウンターです。
imgタグから呼び出されるたびにカウントアップしていきます。
counter.cgi
counter.txtを読み込んで、カウントアップをして、imageフォルダ内の画像を出力します。
7桁表示で、左右にl.gif、r.gifのおまけつきです。
#!/usr/bin/ruby -Ke
require "cgi"
require "gifcat"
count = 0
File.open( "counter.txt", "r+" ) do |file|
file.flock( File::LOCK_EX )
count = file.read.chomp.to_i + 1
file.rewind
file.truncate( 0 )
file.write count.to_s
end
count = count.to_s
count = "0" * ( 7 - count.size ) + count
count = "l" + count + "r"
gif = GIFCat.new
gif.read_files( *count.split( "" ).collect{ |n| "image/#{n}.gif" } )
cgi = CGI.new
print "Pragma: no-cache\n"
print "Cache-Control: no-cache\n"
print "Expires: Thu, 01 Dec 1994 16:00:00 GMT\n"
cgi.out( "image/gif" ) do
gif.to_gif
end
require "cgi"
require "gifcat"
count = 0
File.open( "counter.txt", "r+" ) do |file|
file.flock( File::LOCK_EX )
count = file.read.chomp.to_i + 1
file.rewind
file.truncate( 0 )
file.write count.to_s
end
count = count.to_s
count = "0" * ( 7 - count.size ) + count
count = "l" + count + "r"
gif = GIFCat.new
gif.read_files( *count.split( "" ).collect{ |n| "image/#{n}.gif" } )
cgi = CGI.new
print "Pragma: no-cache\n"
print "Cache-Control: no-cache\n"
print "Expires: Thu, 01 Dec 1994 16:00:00 GMT\n"
cgi.out( "image/gif" ) do
gif.to_gif
end