本日  昨日
 
03/16(Sun) 02:06

o クッキーデータの修復
【お知らせ】「訪問回数、初訪問日、前回訪問日(クッキーの基礎)」バージョンアップ対応版用に変更(2002/03/10)

クッキーを使ってると、
  1. 訪問回数が0に戻ってしまったがどうすれば直りますか?という訪問者からの質問
  2. クッキーの動作確認のために訪問回数、初訪問日などのクッキーデータ値を自分で変更したい。
  3. パソコンの買換えやシステム再インストール後も今までのクッキーを継続したい。
  4. OSやブラウザの異常終了等でクッキーデータがおかしくなった。
  5. 自宅や会社の複数台のパソコンの訪問回数を、自宅(会社)PCに足しこみ回数を1つにまとめたい。
などの必要があるときがあります。このスクリプトはそんな要望に答えるために作成したものです。このスクリプトを使えば訪問回数、初訪問日の変更が簡単かつ安全にできます。サンプルはこちらです。


設置方法
このスクリプトは「訪問回数、初訪問日、前回訪問日(クッキーの基礎)」がすでに導入されてることを前提にしています。まだの方はこちらから導入して下さい。

下のHTML文をエディタで「コピー」「貼り付け」してcookie.html(ファイル名はあなたの好きな名前がつけられます)を作成します。変更する所は次の2ヶ所です。

  1. 真中あたりにある // クッキー処理開始の次行のcookie_name="○○○";の○○○を「訪問回数、初訪問日、前回訪問日(クッキーの基礎)」で定義したあなたのクッキー名に変更します。私の場合は、tkiku_cookieです。
  2. 最終行あたりのある ”「〇〇回目の訪問。(初来訪(〇〇〇〇/〇〇/〇〇)」の表示を確認します。”をあなたページの実際の表示内容に合わせて変更します。(取り敢えずはこのままでも構いません。あなたのページが完成した後に必要なら変更しましょう)
  3. if (first < "1999/04/29") {first="1999/04/29";alert("日付入力がクッキー導入以前です。1999/04/29にセットしました。")}の日付1999/04/29をあなたがクッキーを導入した日付に変更します。
  4. <使い方><a href="cookie.html">クッキーデータ修復</a>とリンクを貼ります。
<HTML> <HEAD> <TITLE>クッキー修復</TITLE> <script language="JavaScript"> <!-- // クッキー関数(この関数は変更しないで下さい) function setCookieData(data) // キーと消去日の設定 { var expdate = new Date (); expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 30 * 1)); SetCookie (cookie_name, data, expdate); } function SetCookie (name,value) // 書き込み { var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + value + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } function GetCookie (name) // 検索 { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) return getCookieVal (j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } function getCookieVal (offset) // 読み込み { var endstr = document.cookie.indexOf (";", offset); if (endstr == -1) endstr = document.cookie.length; return unescape(document.cookie.substring(offset,endstr)); } function DeleteCookie (name) // 消去 { var exp =new Date(); exp.setTime(exp.getTime() - 1); var cval = GetCookie (name); document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString(); } // クッキー関数終了 // データ修復 function setValue() { if (document.myForm.cnt.value) count = document.myForm.cnt.value; if (document.myForm.fvisit.value) { first = document.myForm.fvisit.value; if (lastp == "0000/00/00") lastp = first; } if (count < 1) { count=1; alert("回数入力が0以下です。回数を1にセットしました。") } if (isNaN(count)) { count=1; alert("回数入力が全角文字か、数字ではありません。回数を1にセットしました。") } if (first.length != 10) { first=today; alert("日付入力が10桁ではありません。今日の日付"+today+"にセットしました。") } if (first.indexOf("/",0) != 4) { first=today; alert("日付入力の年と月の間に/がありません。今日の日付"+today+"にセットしました。") } if (first.lastIndexOf("/",9) != 7) { first=today; alert("日付入力の月と日の間に/がありません。今日の日付"+today+"にセットしました。") } if (first < "1999/04/29") { first="1999/04/29"; alert("日付入力がクッキー導入以前です。1999/04/29にセットしました。") } if (first > today) { first=today; alert("日付入力が今日の日付を超えています。今日の日付"+today+"にセットしました。") } result = confirm("訪問回数"+count+","+"初回訪問日"+first); if (result) { set_data="count:"+count+",first:"+first+",last:"+today+",lastp:"+lastp; setCookieData(set_data); } } // データ修復終わり //--> </script> </HEAD> <BODY bgcolor=lightyellow> <h2>クッキーデータの修復</h2> このページはクッキーデータがおかしくなった方がご自分でデータ修復が可能なようにと設けた ページです。<font color=red>正常な方は見るだけにしてデータ入力は行わないで下さい。</font><p> <script language="JavaScript"> <!-- // クッキー処理開始 cookie_name="○○○"; get_data = GetCookie(cookie_name); //クッキーの読み込み now = new Date(); year = now.getYear(); if (year < 2000) year = year + 1900; today = year + ((now.getMonth() < 9) ? "0" : "") + (now.getMonth()+1) + ((now.getDate() < 10) ? "0" : "") + now.getDate(); today=today.substring(0,4)+"/"+today.substring(4,6)+"/"+today.substring(6,8); if (get_data == null) { // 未登録の時、初期値セット count = 1; //訪問回数 first = today; //初訪問日 last = today; //前回訪問日 lastp = "0000/00/00"; //前々回訪問日 } else { // クッキーを、項目に分解 var pairs = new Array(),values = new Array(),str = new Array(); pairs = get_data.split(","); for (i = 0; i < pairs.length; i++) { str = pairs[i].split(":"); values[i] = str[1]; } count = values[0]; first = values[1]; last = values[2]; lastp = values[3]; if (last != today) { count++; // カウンター更新 lastp = last; // 前回訪問日更新 } } // クッキー処理終了 document.write("あなた様の現在のクッキーの内容<table border bgcolor=bisque><tr><td>"); document.write(document.cookie+"</table>count:<font color=blue>訪問回数</font>、first:"); document.write("<font color=blue>初回訪問日</font>、last:前回訪問日、lastp:前々回訪問日"); //--> </script> <FORM NAME="myForm"><font color=red>■クッキーデータ修復手順■</font> <ol> <li>修復したい項目のデータ入力をします。<br> (修復しない項目はブランクのままにします。 現在のクッキー値が自動的にセットされます。)<p> <dl> <dt><font color=blue>訪問回数の修復:</font>変更したい回数を入力して下さい。<br> <INPUT TYPE="text" NAME="cnt">例:15回に修復する場合は <font color=red> 15 </font>と入力します。<p> <dt><font color=blue>初回訪問日の修復:</font>変更したい 日付(yyyy/mm/ddの形式)を入力して下さい。<br> <INPUT TYPE="text" NAME="fvisit">例:1998年9月23日は <font color=red> 1998/09/23 </font>と入力します。<p> </dl> <li>データ入力後、「クッキー修復」ボタンを押して下さい<br> 確認ウィンドウが開きますので修復内容を確認の上OKであれば「OK」ボタンを押して下さい。<br> (「キャンセル」を押すと元に戻りますのでデータの再入力が可能です)<br> <INPUT TYPE="button" VALUE="クッキー修復" onClick="setValue()"><p> <li>下の「戻る」ボタンでメインページに戻り「〇〇回目の訪問。 (初来訪(〇〇〇〇/〇〇/〇〇)」の表示を確認します。これで修復は完了です。<br> (その他日時表示がおかしい(0000/00/00など)があっても 次回(翌日)訪問時には正常に戻ります。) </ol> </FORM> <form><input type=button value=" 戻る " onClick="history.back()"></form> </BODY> </HTML>

 
 
©1997- Kikuchisan's workshop All rights reserved //

スポンサーリンク

関連コンテンツ