最も単純で基本的なクッキーの例を使って、その流れを見ていきます。
1) ユーザーがページを訪れた時、初めてなのか、既にクッキーが書き込まれているのかを判別する必要があります。
本文中の「var num=getCookie("visit");」から getCookie(key)関数 を呼び出し、"visit"に対応する値を探す。
2)本文に帰って以下の処理を行う
if(num=="") 値が無かった場合の処理(メッセージを表示)
else 値があった場合の処理(この場合回数を1増やす)
3)次に新しくクッキーを書き込む。本文中のsetCookie("visit",num); からsetCookie(key,value)関数を呼び出す。
「visit = num;expires=Tue,1-Jan-2014 00:00:00;」のように書き込まれる。
・visit が値numを呼び出すキワードになる
・num は回数を指し、毎回1増える
・expires= はこのクッキーの有効期限を指す。
(この例では2014年の初日にしている。この日以降クッキーは削除される)
● 関数の内容は↓のソースを
● このクッキーは「Cookieの削除」ページいつでもで削除できます。
Sample Source......................................................................>>>
<SCRIPT language="JavaScript"><!--
function setCookie(key,value){ //Cookieファイルにデータを書き込む
if(!navigator.cookieEnabled){ // クッキーが利用可能かどうか
alert("クッキーへの書き込みができません");
return;
}
var temp = key + "=" + escape(value) + ";"; //Cookieのキー名とエンコードされたその値
temp += "expires=Tue,1-Jan-2014 00:00:00;"; //Cookieの有効期限
document.cookie = temp; //Cookieを設定(Cookieファイルに書き込む)
}
function getCookie(key){ //Cookieファイルからデータを読み出す
key = key + "="; //クッキーは「visit = 5;」形式で書き込まれているので
value = "";
temp=document.cookie+";"; //Cookieファイルの全データを変数tempに入れる
//上のデータ内に引数keyの文字列が存在するかを検索し、あった場合その先頭位置を返す
key_start = temp.indexOf(key,0);
if(key_start != -1){ //引数keyの文字列が存在した場合(今までクッキーが書き込まれていない)
start = key_start + key.length; //引数keyに対応する値の先頭位置を調べる。
end = temp.indexOf(";",start);
//引数keyに対応する値の末尾位置を調べる
value = unescape(temp.substring(start,end)); //引数keyに対応する値を取り出し、デコードする
}
return value; //値を返す
}
//--></SCRIPT>
</head>
<body>
<SCRIPT language="JavaScript"><!--
var num=getCookie("visit"); //Cookieファイルから訪問回数を取得する
if(num==""){ //訪問回数が無い場合(初回訪問の場合)
num = 1; //回数を1に設定
alert("あなたのご来訪回数<" + num + ">がCookieファイルに記録されました。
\n次回からは自動的に来訪回数が表示されます。");
}else{ //Cookieファイルからデータが見つかった場合
num++; //回数を1増やす
}
setCookie("visit",num); //訪問回数をCookieファイルに記録
msg="ようこそ、<font color='red' size='16'><b>"+num+"</b></font>
回目のご来訪ですネ!";
document.write(msg); //ページに表示する
//--></SCRIPT>