091972 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

和太鼓情報ドットコム

和太鼓情報ドットコム

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Free Space

Calendar

Profile

wandalei

wandalei

Category

Recent Posts

Keyword Search

▼キーワード検索

Favorite Blog

まだ登録されていません

Freepage List

2006.06.06
XML
カテゴリ:カテゴリ未分類
先日テキストファイルへの書き込みをやったので、本日はそれを利用してアクセスカウンタを作りました。

スクリプトの流れとしては、
現在時間を取得、クッキーに保存→カウントする数字を保存するファイルを作成→ファイルを開き、クッキーに保存した時間と現在時が異なっていればカウント数をひとつ上げる→ファイルを閉じる→6桁で表示する

●setcookie (クッキー名, クッキー値, 有効期限);
クッキー名: 送信するクッキーの任意の名前
クッキー値: クッキーに含まれる値
有効期限 : 任意のクッキー保持期限を UNIX時で設定


●printf(フォーマットを示した変数, 変数)
ここで使っている "%06d" は、『6桁で表示し、足りない桁は0を表示』という意味。
詳しくはマニュアルをご覧ください printf();


ソースはこちら↓

<?php
// 日付けの取得
$date_now = date( "Y/m/d" );
$cookie = $date_now;
// クッキーに日付けをセット
setcookie ( "$Cookie", $cookie );
?>

<html>
<head><title>カウント</title></head>
<body>
<p>あなたは

<?php
// データファイルを設定
$data_file = './count/access.dat';
// ファイルを書き込みモードで開く
$fp = fopen( "$data_file", "r+" );
$count = fgets( $fp, 64 );
// クッキーに保存されている日付とアクセスした時点での日付が違っていればカウントアップ。これで更新ボタンを押してもカウント数は上がりません。
// クッキーで保存されている日付とアクセスした日付が異なれば
if ( $Cookie != $date_now ){
  // カウントに1増やす
  $count++;
  // ファイルポインタを0バイト目(ファイルの先頭)に戻して
  fseek ( $fp, 0 );
  // ファイルに書き込みを行うので排他ロックをかける
  flock ( $fp, LOCK_EX );
  // ファイルに書き込む
  fwrite ( $fp, $count );
}
// ファイルを閉じて
fclose ( $fp );
// $countを6桁で表示する。桁数が満たない場合は0で埋める。
printf ( "%06d", $count );
?>

番目のお客様です。</p>
<p>クッキー機能を使った正確なカウンターです。更新ボタンを押してもカウントアップしません。</p>
</body>
</html>



サンプル画面はこちら





お気に入りの記事を「いいね!」で応援しよう

Last updated  2006.06.07 01:54:31



© Rakuten Group, Inc.