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>
----------------------------------
No.1ベストアンサー
- 回答日時:
[間違い]
二度以上の訪問時に、訪問日が保存されていない(最終行あたり)
sorry の条件に、訪問回数が三回より大、の条件が不足
前回訪問日が今日より前なら、訪問回数の初期化が必要
[戯言]
変数に var を付け忘れてるのでデバッグが大変
eval ダメ絶対
getYear 非奨励なので getFullYear を
そもそも全体的に古い書き方だから、もっといいコピペ元を探すべき
この回答への補足
迅速なご返答ありがとうございます。
無理を承知でお伺いいたしますが詳しいソースコードいただけたりできますか?
大変恐れ致しますが宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自動的にもとのページに再読み...
-
ブロックされるのかされないのか?
-
外部JavaScriptの書き方
-
Javascript超初心者の質問です...
-
promptからのdocument.write
-
スクリプトが分からなくて・・・
-
スクロールしても画像・文字が...
-
HPビルダーで『最終更新日時』...
-
<a href="#" …>の意味を教えて...
-
javascriptファイルは1つに統...
-
HTMLソースからURLだけを抜き出...
-
"mailtoでメールの【氏名】【性...
-
javascriptとApacheの設定
-
「jQuery」アニメーションをル...
-
SCRIPT5007: 未定義または NULL...
-
window.open でExcelファイルを...
-
【Google Apps Script】「ライ...
-
左右のフレームを同時にスクロ...
-
一つの行にURLが複数ある場合の...
-
Dreamweaver で 外部JSを読み込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascriptで変数を組み込みたい
-
document.getElementById
-
キャラクターコード表を出力さ...
-
特定URLからの遷移後、指定ULR...
-
この構文でよいでしょうか?
-
1から100までの平方根を表示す...
-
明日の日にちを表示するときは
-
ホームページを見る度にTOP画面...
-
location.hrefの使用方法について
-
FLASH(swf)2点のリロード毎の切...
-
コピーライトの年表示について...
-
ブログ上で複数のjavaスクリプ...
-
JavaScriptの勉強を始めました。
-
特定のURLからの訪問者を入室禁...
-
'<SCR' + 'IPT>' なぜ分割?
-
JSによるリンク先の値の取得
-
文字の置換について
-
スクロールしても画像・文字が...
-
Java scriptでFLASHを表示した...
-
CGIフォーム一定時間過ぎる...
おすすめ情報