
こんにちは
自作のWebページを作成したのですが
画面遷移を繰り返しているとCookieが
消えることがあるのです。
こういうことってあるのでしょうか?
環境は以下の通りです。
OS:Win2000,XP Pro
ブラウザ:IE 6.0
Cookie書込み:javascript
setCookie("bbb","hammy")
function setCookie(key, val, tmp) {
tmp = key + "=" + escape(val) + "; ";
tmp += "path=/aaa/;";
tmp += "expires=Tue, 31-Dec-2030 23:59:59; ";
document.cookie = tmp;
}
Cookie読込み:javascript
function getCookie(key, tmp1, tmp2, xx1, xx2, xx3) {
tmp1 = " " + document.cookie + ";";
xx1 = xx2 = 0;
len = tmp1.length;
while (xx1 < len) {
xx2 = tmp1.indexOf(";", xx1);
tmp2 = tmp1.substring(xx1 + 1, xx2);
xx3 = tmp2.indexOf("=");
if (tmp2.substring(0, xx3) == key) {
return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
}
xx1 = xx2 + 1;
}
return("");
}
Cookie削除 javascript
delCookies("CCC")
function delCookies(key) {
tmp = key;
tmp += "=;path=/aaa/;";
tmp += "expires=Thu,01-Jan-2000 00:00:01 GMT";
document.cookie = tmp;
}
画面遷移
A画面でCookie書込み⇒B画面でCookie情報を読込み
⇒C画面でCookie情報を読込み
現象:C画面でCookieが読込めない。
備考:C画面では読込みの前に別のCookieを削除しています。
B画面ではCookieの有無をチェックしているだけです。
何か疑問に思えることがありましたら教えてください。
No.2ベストアンサー
- 回答日時:
これは俺が実際に経験したことなのですが、書き込まれる直前のクッキー文字列の状態を alert() で表示してみてください。
ただし、俺が使ってんのもやっぱトホホからコピーしてきた奴なので、スクリプト自体は概略として間違ってないはずですが。
上位プログラムのミスで、まれに日付部分がごっそり抜けてたりしますので(^_^;
それから、俺が実際に使用している(動作確認済みの)JavaScript によれば、2030年12月31日は金曜日だそうですよ。
有難うございます。
>上位プログラムのミスで、まれに日付部分がごっそり抜けてたりしますので(^_^;
私も、最初はそれを疑ったのですがちゃんと有効期限が
入っているんですよね。
パソコンによってはCookieが消されることが無く正常に
動作しているんですが・・・。
同じパソコンでも同一動作を行って消える時と消えない時があって、訳がわかりません(泣)
私の持っているフリーカレンダーでは火曜日なんですが・・・(2030/12/31)
2000/1/1は土曜日ですね・・・。こいつの仕業?
No.3
- 回答日時:
返事が遅くなりました。
すみません。
参考URLを拝見させていただきましたが、標準規約があるわけではないので使えわないほうが良いということなのでしょうか?
ActiveXを使いたくないがためにcookieを使用しているのですが・・・
どうやら、IE6のプライバシー設定とコンパクトポリシーが関連しているようです。
後、有効期限の指定には必ずGMTで指定することが決まりのようですね。とりあえずこの2つで結果を確認します。
皆様本当に有難うございました。
この質問を締め切らせていただきます。
No.1
- 回答日時:
クッキーって、画面単位で制御するのが基本じゃなかったでしたっけ……?
IEだと複数画面にまたがって読めてしまうこともあるみたいですけど、それって仕様の範囲だったかなぁ……。
この回答への補足
すみません。
言葉足らずでした。
Cookieの有効期限を2030年に設定するとDocument&Setting\Cookieにファイルが作成されますが、ファイルが削除されているのです。
B画面では有効期限無しのCookieを作成していますが
これは、メモリ上に作成されセッションが切れた時点でメモリから削除されています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
viewport幅
-
スマホ上で、左右スワイプで次...
-
jsonテキストデータの並び替え...
-
jsでは、関数を実行した後に関...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
Outlookのアカウントがあるとメ...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
三菱GOTの画面切り替えについて
-
ServletからServletへの値渡し
-
セッション切れでのリクエスト...
-
C言語で今まで表示していた画面...
-
ServletからHTMLページへの遷移...
-
java初心者です。 画面Aで情報...
-
Javaプログラミングの質問にな...
-
登録後、呼び出し元ページに戻...
-
system("cls")について
-
【swing】ボタンクリックにより...
-
コンボボックスの値が画面移動...
-
遷移元を判定したい!
-
C# ログイン画面からメイン画面...
-
peek()の機能が使えれば・・・
-
ASP.NET 画面遷移前の状態を保...
-
Sessionがnullになりません。
-
ブラウザアドレスバーからのURL...
-
画面を隠す・消す方法を教えて...
-
検索画面→結果画面→検索画面と...
おすすめ情報