AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

【PHP】特定のページへのアクセスログを記録する方法

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcScS4wA_hHDvXFFZ3TjpEzxjO8fTpH39SDiNRpr17PhmIdfKgGDgA

サーバー開発の勉強をするようになってから、特定のページにアクセスがきた場合のログを記録するってことをやってみたかったので調べて見ました。

特定のページへのアクセスログを記録する方法(PHP

下記のメソッドをページにアクセスしたタイミングで呼び出せばアクセスログをlog.txtに記録します。
記録する情報は、「IP」,「ホスト名」,「リファラ」,「URI」,「アクセスしたブラウザの情報」,「リクエストメソッド」です。

<?php

function OutPutlog()
{
	
	$filename = "../log/log.txt"; //ログファイル名
	$time = date("Y/m/d H:i"); //アクセス時刻
	$ip = getenv("REMOTE_ADDR"); //IPアドレス
	$host = getenv("REMOTE_HOST"); //ホスト名
	$referer = getenv("HTTP_REFERER"); //リファラ(遷移元ページ)
	$uri = getenv("REQUEST_URI"); //URI取得
	$requestbrowser=$_SERVER['HTTP_USER_AGENT'];//ブラウザ情報の取得
	$requestMethod=$_SERVER['REQUEST_METHOD'];//リクエストメソッドの取得
	
	//ログ本文
	$log = "\n---------------------------------".
			"\nDATE:".$time .
			"\nIP:". $ip .
			"\nHOST:". $host. 
			"\nURI:". $uri.
			"\nREFERER:". $referer.
			"\nBROWSER:". $requestbrowser. 
			"\nMETHOD:". $requestMethod;
	
	//ログ書き込み
	$fp = fopen($filename, "a");
	fputs($fp, $log);
	fclose($fp);
	
	//echo $log;
}
?>

アクセスログを記録しておけば、不正アクセスがあったり、何かしらのエラーが発生した場合の調査等ができそうです。