のフリーCGI・PHPスクリプトをキーワード、97のカテゴリから検索できます。スクリプトの登録ご利用は一切無料です。


フリー、シェアCGI・PHPスクリプトをキーワード、96のカテゴリから検索できます。

 色々なスクリプトをお探しなら当サイトで検索

  •  フリーのCGI・PHPスクリプトだけをメインに掲載。
  •  ランキングによる評価で人気のスクリプトを紹介。
  •  サンプル(ページ)の閲覧によるダウンロード前の事前評価。
  •  お気に入りスクリプトへのパーソナルリンクの作成。

 スクリプト登録のメリット

  •  フリースクリプトなら一切無料で幾つでも掲載。
  •  細かなカテゴリ(全97項目)で閲覧者に分かり易く分類。
  •  スクリプトを印象づけるサンプル(ページ)の登録が可能。
  •  ダウンロードランキングの実施による人気度の評価。

素材サイト検索
- SPECIAL THANKS -

TOPページFlashを制作して頂きました
[ バナー作成ドットコム ]

簡易アクセス解析


今回の簡易アクセス解析は、設置されたページのアクセス数をカウントさせます。
そして、過去のデータも保存して比較できるようにします。

#!/usr/bin/perl

# カウントデータ
$DATA_COUNT = 'count.dat';

if($ENV{'REQUEST_METHOD'} eq "POST") {
   read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
   $query = $ENV{'QUERY_STRING'};
}
@args = split(/&/, $query);
foreach $i (@args) {
   ($name, $val) = split(/=/, $i);
   $name =~ tr/+/ /;
   $name =~ s/%([0-9a-fA-F]{2})/pack('C', hex($1))/eg;
   $val =~ tr/+/ /;
   $val =~ s/%([0-9a-fA-F]{2})/pack('C', hex($1))/eg;
   $in{$name} = $val;
}

# アクセス解析モード

&Get_Data();
  
# 日付取得
(undef, undef, undef, $d, $m, $y) = localtime(time);
# 年に1900を足す
$y += 1900;
# 月に1を足す
$m++;
# 日付出力形式成型
$today = sprintf("%04d/%02d/%02d", $y, $m, $d);
  
# もし前回アクセス者のIPと今回のIPが違うなら
if($ENV{'REMOTE_ADDR'} ne $CountData{'REMOTE_ADDR'}) {
   # カウント値加算
   $CountData{$today}++;
   $CountData{'REMOTE_ADDR'} = $ENV{'REMOTE_ADDR'};
   &Set_Data();
}
# アクセス解析結果表示
print "Content-type: text/html\n\n";
foreach(sort {$b cmp $a} keys %CountData) {
   # IPアドレスのデータならスキップ
   next if($_ eq 'REMOTE_ADDR');
   print "$_ : $CountData{$_}<br>\n";
}

# データ取得
sub Get_Data {
   open(DATA, "< $DATA_COUNT");
   eval{ flock(DATA, 1); };
   while(<DATA>) {
	   chomp;
	   # 日付とカウントに分離
	   my($k, $v) = split(/\t/);
	   $CountData{$k} = $v;
   }
   close(DATA);
}

# データ保存
sub Set_Data {
   open(DATA, "+< $DATA_COUNT") or open(DATA, ">> $DATA_COUNT");
   eval { flock(DATA, 2); };
   seek(DATA, 0, 0);
   foreach(keys %CountData) {
	   print DATA "$_\t$CountData{$_}\n";
   }
   truncate(DATA, tell(DATA));
   close(DATA);
}

アクセス解析は、アクセスカウンターの規模を拡張したものです。
今回は、過去のデータと比較できる簡易アクセス解析スクリプトとしました。

データの取り扱い方法は、ハッシュを用いた擬似データベース方式。
ハッシュのキーをカウントした年月日としています。

なお、そのハッシュには重複カウント防止用のIPアドレス保存スペースも確保されています。
これは、解析結果に反映しないようにループ部分でスキップさせます。

日付取得部分で、年に1900を足したり、月に1を足したりしていますが、これはプログラム本体の仕様ですので
必要処理となります。

sozaiCLUB