Cookieの利用

Index

JavaScriptで唯一のファイルアクセスが許された、Cookieを利用して個々のユーザが、ページへ何回アクセスしたかを表示するカウンタのサンプルです。
[注意]
ページへの総アクセス数を表示するカウンタではありません。アクセスしたユーザが何回ページへアクセスしたかを表示するサンプルです。

【例】

<script type="text/JavaScript">
<!--
var day = new Date( "31,Dec 1999" );
function GetCounter()
{
	var ret;		//(1)
	if( document.cookie.length > 0 )
	{
		adr = document.cookie.indexOf( "counter=" ); //(2)
		if( adr != -1 )
		{
			adr += 8;	//"counter="の文字数
			end = document.cookie.indexOf( " " , adr );	//(3)
			if( end == -1 )
				end = document.cookie.length;
		 	ret = document.cookie.substring( adr , end );
			return unescape( ret );		//(4)
		}
	}
	return "undefined";	//(5)
}
//-->
</script>

<!--カウンタ表示部-->
<script type="text/JavaScript">
<!--
var cnt = GetCounter();	//(6)
if( cnt == "undefined" || cnt == "NaN" )		//(7)
{
	document.write( "counter : 1" );
	cnt = 1;
}
else	//(8)
	document.write( "counter : " + cnt );
cnt = eval( cnt ) + 1;
document.cookie = " counter=" + cnt + "; expires=" + day.toGMTString();   //(9)	
//-->
</script>


【解説】

(1)戻り値:カウンタの値を格納する変数
(2)保存先のアドレスの検索
(3)読み込み終了アドレスの検索
(4)ここでカウント数を返す。
(5)初めてページに訪れた場合はundefinedを返す。
(6)Cookieカウント数を読み込みます。
(7)初めてページへ訪れたときの処理(1を表示します。)
(8)初めてでない場合の処理(カウント数を表示します。)
(9)カウンタに1を加えてCookieに保存します。expiresは有効期限を表わします。これを書き込まないとデータは保存されません。

【実行してみよう】

リロードを押すとカウンタの値が増えます。
またこの値はcookiesに保存されていますので、次回アクセス時にも有効です。


1999(C) Motonari Morikawa