クッキー試食
クッキーを使って来訪回数、前回来訪時間などを表示。
目次に戻る

● 設置例



クッキーを使ったサンプルです。
お客様の名前を記憶し、時間や訪問回数ごとに違うメッセージでご挨拶を返します。

●ソース

<script type="text/javascript">
<!--
var kaisu;
var name;
var last;
var hairetu=new Array(); //[1]:kaisu,[2]:name,[3]:last
var date = new Date();	//現在時間用
var tmpdt = new Date();	//時間いじり用仮置き場
var tmpstr="";

if(document.cookie.indexOf("<@>")<0){
	hairetu[1]=0;
	hairetu[2]="";
	hairetu[3]=0;}
else hairetu = document.cookie.split("<@>");

kaisu=hairetu[1];
name=unescape(hairetu[2]);
last=hairetu[3];

//kaisu 回数に1を足す
if(!kaisu) kaisu=0;
kaisu=(kaisu/1)+1;

//name 名前を保存していなかったら尋ねる
if(name==""||!name){
	name=prompt("あなたのお名前は?","");
	if(name=="") name="名無し"
}

//★ご挨拶(訪問回数 & 現在時間)
if(kaisu==1) tmpstr="はじめまして、";
else{	if(date.getHours()>=5 && date.getHours()<10) tmpstr="おはようございます、";
	else if(date.getHours()>=10 && date.getHours()<19) tmpstr="こんにちは、";
	else tmpstr="こんばんは、";
}
document.write("<BR>" + tmpstr + name + "さん。");

//★100の倍数のとき記念コメントを出す
if(kaisu%100==0) document.write("<BR>おめでとうございます。"+name +"さんは今回で記念すべき" + kaisu +"回目のご訪問です。");
else document.write("<BR>" + name+"さんは今回で" + kaisu +"回目のご訪問です。");


//★前回訪問日時
if(last>0){
	tmpdt.setTime(last);
	document.write("<BR>前回は"+tmpdt.toLocaleString()+"に来てくださいました。");
}


//★前回訪問時間と現在時間の差
if(last>0){
	tmpstr=nissu(date.getTime()-last);
	document.write("<BR>前回の来訪時より"+tmpstr+"経過しています。");
}


//現在時間に60日足す(賞味期限)
tmpdt.setTime(tmpdt.getTime()+1000*60*60*24 * 60);
expires=tmpdt.toGMTString();

//クッキー保存
document.cookie = "ccntr=<@>" + kaisu + "<@>" + escape(name) + "<@>" + date.getTime() +"<@>;expires=" + expires;


// nissu()  ミリ秒を日数(文字列)に変換////////////////////////////////////////////
//引数 msec:ミリ秒
//戻り値 日数
function nissu(msec){
var sec=0;
var min=0;
var hou=0;
var day=0;
var rtnstr="";

day=Math.floor(msec/(24*60*60*1000));
msec=msec%(24*60*60*1000);
hou=Math.floor(msec/(60*60*1000));
msec=msec%(60*60*1000);
min=Math.floor(msec/(60*1000));
msec=msec%(60*1000);
sec=Math.floor(msec/1000);

if(day>0) rtnstr=day+"日";
if(hou>0) rtnstr=rtnstr+hou+"時間";
if(min>0) rtnstr=rtnstr+min+"分";
rtnstr=rtnstr+sec+"秒";

return rtnstr;
}
//-->
</script>


●設置方法
上記をHTMLソース内<head>〜</head>に貼り付けてください。

●メッセージ変更
コメントに★印のついている1組でおよそ1文なのですが、
これはそれぞれ動作が独立してますので要らない文は消してOKです。


目次に戻る