★Cookie の設定・参照・削除をする。

戻る

Cookie の設定・参照・削除をする。


Cookie
Cookieとは、JavaScriptで唯一クライアント側に書き込みが許されているものです。設定は、document.cookie = "書き込むデータ";とするだけです。参照は、document.cookieの中からセクション名を伝にデータを抜き出します。サンプルでは、訪問者へのメッセージ表示と訪問者毎のアクセスカウンタで Cookie を使用しています。このページに入った時いきなりalertが表示されているはずです。

対応状況 N2 N3 N4 N6 N7 O6 NA1 GA1 MO1 K2 E3 E4 E5 ME5 E55 E6      

head部のソース

<head>
<script type="text/JavaScript">
<!--
var n; // アクセス数(グローバル変数)
setDay = new Date();  // 現在の日時を取得

//--------------------------------------------------------------------------
// Cookieを参照する関数(Cookieから指定されたデータを抜きだす)
// 成功した時はnull以外、失敗した時はfalseを返す
//--------------------------------------------------------------------------
function getCookie(theName)
{
	theName += "="; // = を追加
	theCookie = document.cookie+";"; // 検索時最終項目で-1になるのを防ぐ
	start = theCookie.indexOf(theName); // 指定されたセクション名を検索する
	if (start != -1)
	{
		end = theCookie.indexOf(";",start); // データを抜きだす
		return unescape(theCookie.substring(start+theName.length,end));
	}
	return false;
}

//--------------------------------------------------------------------------
// Cookieを設定する関数(Cookieにデータを保存する)
// 成功した時はtrue、失敗した時はfalseを返す
//--------------------------------------------------------------------------
function setCookie(theName,theValue)
{
	if ((theName != null) && (theValue != null))
	{
		expDay = new Date(); // 現在の日時を取得
		expDay.setTime(expDay.getTime()+(theDay*1000*60*60*24)); // Cookie期限の設定
		expDay = expDay.toGMTString();
		document.cookie = theName + "="+escape(theValue)+";expires="+expDay; // データ保存
		return true;
	}
	return false;
}

function getCount()
{
	week = 7;   // 1週間(=7日間)後を"久しぶり"とする
	week = week*1000*60*60*24; // ミリ秒に変換
	n = getCookie("count");  // アクセス回数取得
	oDay = getCookie("origin"); // 前回アクセス日時取得
	oldDate = (new Date(oDay)).getTime(); // ミリ秒に変換
	newDate = setDay.getTime();
	sec = newDate - oldDate; // 前回と今回の日時の差分

	if (!n)
	{
		if (setCookie("count",2) && setCookie("origin",setDay))
			alert("ようこそいらっしゃいました。");

	}else{
		if (setCookie("count",eval(n)+1) && setCookie("origin",setDay))
		{
			if (sec >= week) // week以上なら"お久しぶり"
			{
				if (theDay != -1) // theDayが -1 ならばcookie削除
				{
					alert("お久しぶりです、ようこそ。");
				}else{
					alert("Cookieを削除しました。");
				}
			}else{
				if (theDay != -1)
				{
					alert("また来て頂いて、有難うございます。");
				}else{
					alert("Cookieを削除しました。");
				}
			}
		}
	}
}
//-->
</script>
</head>
body内ソース
<body>
<p>
<script type="text/JavaScript">
<!--
theDay = 30;  // Cookie の保存期間を「30日間」とする
getCount();
if (!n)
{
	document.write("初めてのアクセスです。");
}else{
	document.write(n+"回目のアクセスです。");
}
//-->
</script>
</p>
<p>
<a href="javascript:theDay = -1; getCount();">Cookieを削除する。</a>
</p>
</body>
Cookieの削除は、Cookieを設定する関数の変数 theDaytheDay = -1; とすればできます。theDayは Cookie の保存期間なので必ず設定して下さい。リロード(更新)すればアクセスカウンタがカウントされます。-------------------------------- 表示

Cookieを削除する。

--------------------------------

[先頭へ] [Top Pageへ] [Contentsへ]


Copyright (C) pokochan 2000-2003
http://www.tees.ne.jp/~pokochan/tips/cookie.html
E-mailpokochan@mx1.tees.ne.jp