フラッシュとPHPを使用したカウンター
フラッシュからPHPにデータを送って、PHPからの返り値を利用するモデルとしての習作です。
そのため、日付をフラッシュで得てPHPに送るという馬鹿な仕様になっています。

flashcounter.fla

アクション-フレームに

targetURL = "http://hogehoge.com/flashcounter.php";
// Dateオブジェクトを作る
todayTime = new Date();
// LoadVarsオブジェクトを作る
sendData = new LoadVars();
// LoadVarsオブジェクトに送るデータを代入
sendData.year_today = todayTime.getYear();
sendData.month_today = todayTime.getMonth();
sendData.date_today = todayTime.getDate();
// sendDataをPOSTで送り、返値をsendDataに格納
// 送るデータが同じ場合リターンにキャッシュが使われるので時分秒などのデータを一緒に送ると良い
sendData.sendAndLoad(targetURL, sendData);
// GETで送りたい場合は
// sendData.sendAndLoad(targetURL, sendData, "GET");

アクション-ムービーに

// CGIから返り値が返ってくるまで代入を繰り返させるために、代入はムービークリップで行う
onClipEvent (load) {
	// コントロールムービークリップを不可視にする
	_visible = false;
}
onClipEvent (enterFrame) {
	_root.sendData.onLoad = function() {
		// 返り値を代入
		_root.count = _root.sendData.count;
		_root.count_today = _root.sendData.count_today;
		_root.count_yesterday = _root.sendData.count_yesterday;
	};
}

flashcounter.php

$log_path = "flashcounter.dat";
$max_buffer = 1024;
// POSTメソッドからデータをえる
// PHPのバージョンによっては他の方法をとる
$year_today = $_POST['year_today'];
$month_today = $_POST['month_today'];
$date_today = $_POST['date_today'];
// 1月が0になるから
$month_today++;
// 整形して$dateに代入
if ($month_today < 10) {
	$month_today = "0" . $month_today;
}
if ($date_today < 10) {
	$date_today = "0" . $date_today;
}
$date = $year_today . $month_today . $date_today;

// 読み書きモードでオープン
$fp = @fopen($log_path, "r+") or die("ファイルが開けません");
$buffer = fgets($fp, $max_buffer);
if ($buffer == "") {
	// 初アクセスの場合
	$count[0] = 1;
	$count[1] = $date;
	$count[2] = 1;
	$count[3] = 0;
} else {
	$count = preg_split ("/<>/", $buffer);
	$count[0]++;
	if ($count[1] != $date) {
		// 今日初アクセスの場合
		$count[1] = $date;
		$count[3] = $count[2];
		$count[2] = 1;
	} else {
		$count[2]++;
	}
}
$buffer = $count[0] . "<>" . $count[1] . "<>" . $count[2] . "<>" . $count[3];
// ポインタを先頭に、ロックして書き込み
fseek($fp, 0);
flock($fp, 2);
fputs($fp, $buffer);
// ファイルを閉じる
fclose($fp);

// フラッシュにデータを返す
//  後ろに広告などが付く場合は . "&ad=" などを付加
$return_data = "count=" . $count[0] . "&count_today=" . $count[2] . "&count_yesterday=" . $count[3];
echo $return_data;

flashcounter.dat

// パーミッションを606にする

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル