ユーザー別アクセスログ作成3|REMOTE_HOST, HTTP_REFERER エラー対応用

PHP

PHPindex.phpdownload

<?php

	$username = "username";//作成するユーザー名

	$dir_name = "users_access_log";//作成するディレクトリ名

	$page_title = "ページタイトル";//ページタイトル

	createUsersAccessLogFile($username, $dir_name, $page_title);


function createUsersAccessLogFile($username, $dir_name, $page_title){

	//REQUEST_URI		訪問したページのドメイン以下のパス
	//REMOTE_ADDR		訪問したユーザーのIPアドレス
	//REMOTE_HOST → gethostbyaddr($_SERVER["REMOTE_ADDR"]))訪問したユーザーのホスト名
	//REMOTE_PORT		ポート番号
	//HTTP_USER_AGENT	訪問したユーザーのブラウザ
	//HTTP_REFERER → isset($_SERVER['HTTP_REFERER'])? $_SERVER['HTTP_REFERER'] : NULL; 参照ページアドレス(アクセス元のページ)
	//HTTP_ACCEPT_LANGUAGE	言語
	//HTTP_CONNECTION	コネクションヘッダ

	$http_referer = isset($_SERVER['HTTP_REFERER'])? $_SERVER['HTTP_REFERER'] : NULL;

	if(empty($username)){

		$username = "everyone";
	}

	$d = date_create();

	$access_year = date_format($d, "Y");

	$access_month = date_format($d, "m");

	$dir_name .= "/{$access_year}_{$access_month}";

	if(!is_dir($dir_name)){

		mkdir($dir_name, 0755, TRUE);
	}

	if(is_dir($dir_name)){

		$access_date = date_format($d, "Y/m/d");

		$access_time = date_format($d, "H:i:s");

		$file_name = "{$dir_name}/{$username}.log";

		$values = array(array($access_date, $access_time, $page_title, $_SERVER['REQUEST_URI'], $_SERVER['REMOTE_ADDR'], gethostbyaddr($_SERVER['REMOTE_ADDR']), $_SERVER['REMOTE_PORT'], $_SERVER['HTTP_USER_AGENT'], $http_referer, $_SERVER['HTTP_ACCEPT_LANGUAGE'], $_SERVER['HTTP_CONNECTION']));

		$fopen = fopen($file_name, "a");

		foreach($values as $line){

			fputcsv($fopen, $line);
		}

		fclose($fopen);
	}
}
?>
© 2025 wayday