• 締切済み

クッキーがやっかいなんです。

cookie が思うように消えてくれません。 expires で過去の日付を指定して、書き込めばその 途端に消えてくれるものではないのでしょうか。 cookie フォルダを確かめると、存在してないのに tmp = Document.cookie とやると、中身が参照 できてしまいます。 ( 別のページに変数を受け渡す為に、一時的保存に 使っているだけなのです。) あまりに、思うように消えてくれないので、 Document.cookie = 0; などと、サブウィンドウから内容を上書きし、 そのウィンドウを閉じてから、メインのページで、 tmp = document.cookie; とやると、内容が 0 ではなく、その前に入れた文字列が 参照できてしまいます。 なぜなんでしょう? なにかいい方法はないで しょうか・・・

  • yasu
  • お礼率79% (173/218)

みんなの回答

  • zerosix
  • ベストアンサー率31% (47/149)
回答No.1

>expires で過去の日付を指定して、書き込めばその >途端に消えてくれるものではないのでしょうか。 違うかと思います。メモリーには残っているはずです。 >( 別のページに変数を受け渡す為に、一時的保存に使っているだけなのです。) この目的であれば、有効期限を設定しないで、名称だけで cookieを設定すれば、ブラウザを閉じたときに、cookieは メモリから消えます。 >サブウィンドウから内容を上書きし 別名で新規保存じゃだめですか?

yasu
質問者

お礼

別名で新規保存で試してみます。 ありがとうございました。

関連するQ&A

  • javascriptでクッキーを書き出しているんですが、確実にクッキー

    javascriptでクッキーを書き出しているんですが、確実にクッキーの値を上書きするにはどうすればいいのでしょうか? 通常では同じkeyがあれば上書きされるはずですよね?それなのに、クッキーの内容を確認すると同じkeyで値が違うものができていて判定ができない状態です。 上書きされないという問題の原因が自分ではわかりません。何か原因があるとすれば解決方法などありますでしょうか? どなたか是非ご教示の程お願いします。 /*クッキー作成の関数*/ function SetCookie(Value){ Expires = new Date(); //日付オブジェクト作成 Expires.setTime(Expires.getTime()+(1000*60*60*24*365)); //デフォルト1年有効 Expires = "expires=" + Expires.toGMTString(); //クッキーの有効期限を作成 SetData = "Area=" + escape(Value) + ";"; //クッキー名=値 を作成 document.cookie = SetData + Expires + ";domain=123456789;path=/;"; //クッキー発行 }

  • クッキーが消せない

    下記のDelcookieを呼び出してクッキーを削除したのですがdocument.write(document.cookie);で見ると0421066NQ=Tdoprzahdoqekdnaaac&04aaacと表示されてクッキーが消せません。 スクリプトでクッキーを消すにはどうすれば良いのでしょう? function Delcookie(){ if(document.cookie==""){ alert("このサーバによるCookieはありません。") }else{ tmp=document.cookie.split(";");     dTime = new Date();      dTime.setYear(dTime.getYear() - 1); for(i=0;i<tmp.length;i++){ temp1=tmp[i].split("=")[0]; document.cookie=temp1+"=;expires=" + dTime.toGMTString(); } alert("このサーバによるCookieを削除しました。"); } }

  • フォームの内容をクッキーに保存する

    IDをフォームに記入してクッキーに保存し、別ページで使用しようとしています。 フォームに入力してsubmit(onclickでCookieに保存)しようとすると、 1回遅れでCookieに保存されます。 (前々回保存した内容がCookieに保存される) POSTを変数に入れる順番がおかしいのでしょうか? ご教示お願い致します。 以下ソースです。 setid.php <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> <!-- // Cookie設定 // Cookie送信function function setCookie(key,val,url){ tmp = key+"="+escape(val)+";"; tmp += "expires=Fri, 31-Dec-2030 23:59:59;"; if(url){ tmp += "domain="+getDomain(url)+";"; tmp += "path="+getDomainPath(url)+";"; } document.cookie = tmp; location.reload(true); }; // Cookie削除function function delCookie(key){ expiredate = new Date(); expiredate.setYear(expiredate.getYear()-1); tmp = key+"=;"; tmp += "expires="+expiredate.toGMTString(); document.cookie = tmp; }; // Cookie削除(削除ボタン用) function del_cookie_id(){ delCookie("testid"); location.reload(true); } //--> </script> </head> <body> <center> <!-- ID入力フォーム --> <?php // Cookie読込み-ID $testid=$_COOKIE["testid"]; ?> <form action="setid.php" method="post"> <input type="text" name="testid" size="20" value="<?php echo $testid; ?>"> <!-- ID保存ボタン --> <?php $testid=$_POST["testid"]; ?> <input type="submit" name="set_id" value="IDを保存" onclick="setCookie('testid','<?php echo $testid; ?>');"> <!-- ID削除ボタン --> <input type="submit" name="del_id" value="IDを削除" onclick="del_cookie_id()"> </form> <br> <!-- Cookie表示 --> <?php print_r($_COOKIE); ?> <br> </body> </html>

    • ベストアンサー
    • PHP
  • クッキー情報の保存日数

    function setCookie(keyname, val){ var tmp = keyname + "=" + escape(val) + ";"; var gmt = new Date(); gmt.setTime(gmt.getTime() + 9*60*60*1000 + 24*60*60*1000*365); tmp += "expires=" + gmt.toGMTString(); document.cookie = tmp; 上記設定にてクッキーが保存されていますが、1週間もしない内に存された情報が消えてしまいます。1年以上保存しておきたい場合はどのように設定すればいいのでしょうか?

  • クッキー情報の保存日数

    function setCookie(keyname, val){ var tmp = keyname + "=" + escape(val) + ";"; var gmt = new Date(); gmt.setTime(gmt.getTime() + 9*60*60*1000 + 24*60*60*1000*365); tmp += "expires=" + gmt.toGMTString(); document.cookie = tmp; 上記設定にてクッキーが保存されていますが、1週間もしない内に保存された情報が消えてしまいます。1年以上保存しておきたい場合はどのように設定すればいいのでしょうか?

  • Cookieが消える?

    こんにちは 自作の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の有無をチェックしているだけです。 何か疑問に思えることがありましたら教えてください。

  • cookieの有効範囲について

    cookieは設定したページのみでしか読み書きできないのでしょうか? あるサイトで document.cookie = name + "=" + escape(aaa) + "path=/ ; expires=" + kigen2 + "domain=" + location.hostname + ";"; という風にpathの部分を「path=/」とすれば同じサーバー内なら参照可能だと記載されていたのですが、どうにも上手くいきません。 cookieを設定したページ以外のページで同じcookieを読み書きする方法を知っていたら是非教えてください。 よろしくお願い致します。

  • JavaScriptによるクッキーの書込みについて

    JavaScriptによるCookieの書込みで以下のようにhtmlにはりつけているのですが、どうしてもpath=/が有効になりません。 書き込まれたクッキーをみるとクッキーを書き込むディレクトリになってしまいます。 <script type="text/javascript"> <!-- var limit = 1; //有効期限日数をいれる exp=new Date(); exp.setTime(exp.getTime()+1000*60*60*24*limit); var no = '01010088'; var img_url = './0101/img/0088/01010088i.gif' var url= './0101/01010088.html'; var itemname= '遠赤外線セラミックの竈(かまど)炊き風炊飯鍋と御櫃(おひつ)セット'; var price = '7960'; var souryou = '700'; setCookie(no,'img:' + img_url +',url:' + url + ',itemname:' + itemname + ',price:' + price + ',souryou:'+ souryou +',',exp); function setCookie(key, val, val_exp,tmp) { tmp = key + "=" + escape(val) + "; "; tmp += "expires= " + val_exp.toGMTString(); + "; "; tmp += "path=/;"; document.cookie = tmp; } // --> </script> 書籍をいろいろみたのですがクッキーについて詳しくかいているのがあまりなくて・・・ ご教授お願いします。

  • クッキーに内容によってリンク先を変えたいです!

    教えてください! トップページでクッキーにnameを保存させて、 他のページに移った際に、そのnameがある場合とない場合で ボタンのリンク先を変えたいのですが、 そんなことできるのでしょうか? また、トップページでクッキーに数値を保存させるのは、 下記を記述しておくだけで、クッキーに保存されるのでしょうか? <SCRIPT type="text/javascript"> <!-- document.cookie = "name = 名前; expires = 期限;" //--> </SCRIPT> 是非教えてください!

  • クッキーを発行するドメイン名を指定する方法

    function getCookie(keyname){ var tmp = document.cookie + ";"; var index1 = tmp.indexOf(keyname, 0); if(index1 != -1){ tmp = tmp.substring(index1, tmp.length); var index2 = tmp.indexOf("=", 0) + 1; var index3 = tmp.indexOf(";", index2); return(unescape(tmp.substring(index2, index3))); } } function setCookie(keyname, val){ var tmp = keyname + "=" + escape(val) + ";"; var gmt = new Date(); gmt.setTime(gmt.getTime() + 9*60*60*1000 + 24*60*60*1000*365); tmp += "expires=" + gmt.toGMTString(); document.cookie = tmp; } function backFunc(){history.back();} function backEntry(){window.location = "rank2.cgi?mode=show&rank=$IN{'rank'}";} function backOperate(){document.form1.submit();} function startFunc(){ if("$FORM{'savecookie'}" != "save"){return;} if(getCookie("dakenId") != "$FORM{'para3'}"){setCookie("dakenId", "$FORM{'para3'}");} if(getCookie("dakenPass") != "$FORM{'para4'}"){setCookie("dakenPass", "$FORM{'para4'}");} } 現在は、http://ドメイン.com/cgi-bin/abc/ このような階層にクッキーが保存されています。 これを、http://ドメイン.com/cgi-bin/に保存するには、上記スクリプトをどのように変更すればよろしいのでしょうか。 発行したクッキーの参照可能なサイト (URL) として domain 値と path 値があるそうですが、自分なりにここ二日間勉強し続けましたが、クッキーについての知識はゼロに近いため、どうしても自力では解決できそうにありません。 どなたかご存知のかた、何卒宜しくお願いいたします。