※ ChatGPTを利用し、要約された質問です(原文:Cookieの回数で閲覧制限、javascript)
JavaScriptでCookieの回数で閲覧制限を行う方法
このQ&Aのポイント
JavaScriptを使用して、Cookieを取得し、閲覧回数と閲覧日付を管理することで、1日に3回しかページを閲覧できないコンテンツを作ることができます。
クッキーに登録する汎用関数とクッキーを取り込む汎用関数を定義し、訪問回数と訪問日付を管理します。
初めての訪問時には訪問回数を初期化し、訪問日付を保存します。2回目以降の訪問時には、訪問回数を増やし、前回の訪問日付と比較して同じ日の場合には閲覧制限をかけるページにリダイレクトします。
Cookieの回数で閲覧制限、javascript
javascriptでCookieを取得し、閲覧回数と、閲覧した日付で、
1日3回しかページを閲覧することが出来ないコンテンツを作りたいと思っています。
以前のどなたかの質問にあったのを見つけたのですが、
解決をしていましたが、私がいざ行ってもまったくできなかったため、
改めて、間違っている部分と正確なソースをどなた様かご教授いただけませんでしょうか?
※名前の保存はなしにできればしたいです…。
どうかよろしくお願いいたします。
----------------------------------
<script language="JavaScript"><!--
/* クッキーに登録する汎用関数 */
/* 書式 : mySetCookie(クッキー名,値,有効期限日数) */
/* 戻り値 : なし(void) */
function mySetCookie(myCookie,myValue,myDay){
myExp = new Date();
myExp.setTime(myExp.getTime()+(myDay*24*60*60*1000));
myItem = "@" + myCookie + "=" + escape(myValue) + ";";
myExpires = "expires="+myExp.toGMTString();
document.cookie = myItem + myExpires;
}
/* クッキーを取り込む汎用関数 */
/* 書式 : myGetCookie(クッキー名) */
/* 戻り値 : 値(string) null:該当なし */
function myGetCookie(myCookie){
myCookie = "@" + myCookie + "=";
myValue = null;
myStr = document.cookie + ";" ;
myOfst = myStr.indexOf(myCookie);
if (myOfst != -1){
myStart = myOfst + myCookie.length;
myEnd = myStr.indexOf(";" , myStart);
myValue = unescape(myStr.substring(myStart,myEnd));
}
return myValue;
}
// --></script>
<script language="JavaScript"><!--
myD = new Date();
myYear = myD.getYear();
myYear4 = (myYear < 2000) ? myYear+1900 : myYear;
myMonth = myD.getMonth() + 1;
myDate = myD.getDate();
myYMD = myYear4 + "/" + myMonth + "/" + myDate;
myUser = myGetCookie("USER_NAME"); // 名前読込
if (myUser == null){ // 初めての訪問
myUser = "匿名";
mySetCookie("USER_NAME",myUser,365); // 名前保存
mySetCookie("USER_DATE",myYMD,365); // 訪問日保存
myLast = myYMD; // 前回訪問日とする
myCount = 1; // 訪問回数→初回
} else { // 2度以上の訪問
myCount = eval(myGetCookie("USER_COUNTER")); // カウンター読込
myLast = myGetCookie("USER_DATE"); // 前回訪問日読込
if ( myYMD == myLast){ // 前回訪問日が今日だったら
window.location = "sorry.html"; // 1日1回しか閲覧出来ないことを伝えるページに飛ばす
}
}
myLast = myYMD; // 前回訪問日を更新する
myCount = myCount +1; // 閲覧回数を追加する
mySetCookie("USER_COUNTER",myCount,365); // カウンター更新
mySetCookie("USER_NAME",myUser,365); // 名前の賞味期間を更新
// --></script>
----------------------------------
補足
迅速なご返答ありがとうございます。 無理を承知でお伺いいたしますが詳しいソースコードいただけたりできますか? 大変恐れ致しますが宜しくお願い致します。