javascriptでクッキーの値を上書きする方法は?

このQ&Aのポイント
  • javascriptでクッキーの値を上書きする方法を教えてください。
  • クッキーの値を上書きできない原因や解決方法について教えてください。
  • クッキーを上書きするための関数や手順を教えてください。
回答を見る
  • ベストアンサー

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=/;"; //クッキー発行 }

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>通常では同じkeyがあれば上書きされるはず そうでもないです きちんとやるなら前のデータを削除して、新たに追加することです。

関連するQ&A

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

    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年以上保存しておきたい場合はどのように設定すればいいのでしょうか?

  • 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> 書籍をいろいろみたのですがクッキーについて詳しくかいているのがあまりなくて・・・ ご教授お願いします。

  • javascript joinについて

    var options = new Array(); options.push("expires=" + d.toGMTString()); // 引数『key』『value』を元にした設定と、時刻の設定を、 // 文字列結合してクッキーに書き込み document.cookie = escape(key) + "=" + escape(value) + "; " + options.join("; "); // 『key=value; expires=時間』を書き込み 参考書で上記のような表現があります。 この場合のjoinは  expires= と d.toGMTString() の間に ; を入れるという意味かと思ったのですが どうやら違うみたいす。 検索しても解決できませんでした。どなたか御教授お願いします。

  • クッキーの初歩的質問

    クッキーに下記のような内容を書き込む方法を教えて下さい。上から順にクリックしていったときに、alert(★)の部分を「1,2,3」という結果にしたいのですが。 <SCRIPT language=JavaScript> function memoryCookie(num){ expires = new Date() expires.setTime(expires.getTime() + 24*60*60*1000) document.cookie = "mydata=" + num + ";expires=" + expires.toGMTString() alert(★) } </SCRIPT> <form name="myform"> <INPUT TYPE="CHECKBOX" NAME="test" VALUE="1" onclick="memoryCookie(this.value)">1<BR> <INPUT TYPE="CHECKBOX" NAME="test" VALUE="2" onclick="memoryCookie(this.value)">2<BR> <INPUT TYPE="CHECKBOX" NAME="test" VALUE="3" onclick="memoryCookie(this.value)">3<BR>

  • Macでクッキーが呼び出せない

    以下のような遷移を作っております。 ・HtmlファイルにJavaScriptでクッキーを以下のように書き込む。 var no = '01010088'; var img_url = '../01010088i.gif'; var url= '../01010088.html'; var itemname= '日本語商品名'; var price = '7,960'; var souryou = '1';//有料の場合は1 無料の場合は0 setCookie(no,img_url +':' + url + ':' + itemname + ':' + price + ':'+ souryou +':'+ exp2 + ':',exp,limit); function setCookie(key,val,val_exp,val_limit) { tmp = key + "=" + escape(val) + "; "; tmp += "path=/ ;"; if(limit > 0){tmp += "expires= " + val_exp.toGMTString(); + "; ";} document.cookie = tmp; } ・CGIでクッキーを呼び出す。その際UTF-16をデコード処理してSjisにしております。 #クッキーの取得 &getCookieName(); ここにデコード処理を書いております。多いので割愛 sub getCookieName { local($xx, $name, $value); foreach $xx (split(/; */, $ENV{'HTTP_COOKIE'})) { ($name, $value) = split(/=/, $xx); $pure_value = $value; $value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg; $COOKIE{$name} = $value; push @COOKIE,"$name:$value$pure_value:\n"; } } で実際Windowsで閲覧するとクッキー情報が正常に出力されるのですが、Mac、自社サーバーにアップしたページを見るとOKなのですがあるレンタルサーバーに同じものをアップしてみるとだめなのです。 あいまいな表現ですが、なにかこれだけの情報でなにが原因か事例がありますか? もし不足な情報ならご指示ください。

    • ベストアンサー
    • CGI
  • Cookie データの消し方がわからない

    次のような関数で、クッキーは設定できます。 function setteiCookie(){ var history="AnythingVeryImportant"; var expiry= new Date(); expiry.setTime( expiry.getTime() + 60*60*1000); window.document.cookie= escape("history=" + history + ";expires=" + expiry.toGMTString() + ";"); } しかし次のような関数ではクッキーデータを消すことができません。 function kesuCookie(){ var history=""; var expiry= new Date(); expiry.setTime( expiry.getTime() - 1000); window.document.cookie= escape("history=" + history + ";expires=" + expiry.toGMTString() + ";"); } どうすれば消すことができるのでしょうか? また、クッキーデータを手で消す方法も教えていただけるとありがたいです。"cookie" を検索して次のようなフォルダーを見つけましたが、自分がクッキーに設定したデータを探すことができませんでした。 c:\Program Files\Netscape\Netscape\chrome\overlayinfo c:\WINDOWS\system32\config\systemprofile どうぞよろしくお願いいたします。 papashiro

  • 外部からgetされた内容をクッキーに書き込みたい

    お世話になります。 外部URLからgetされる内容をCookieに書き込んで利用したいのですが、うまくいきません。 外部から送られてくる内容は以下のものです。 <form method="get" action="https://www.xxxxxxxx/kiyaku.html" target="_blank"> <input type="hidden" name="id_agency" value="00000000"> <input type="image" name="submit" src="images/b.gif"> </form> 読み書き用のjavascriptとして、以下のものを作ってみました。 cookie.js ckary = new Array(); //setcookie ここから function setck(){ ckary[0] = document.forms[0].id_agency.value; exp=new Date(); exp.setTime(exp.getTime()+1000*60*60*24*60); ckstr = escape(ckary[0]); i = 1; while (ckary[i]){ ckstr += "%00" + escape(ckary[i]); i++; } document.cookie = "XX_Agency=" + ckstr + "; expires=" + exp.toGMTString(); } //setcookie ここまで //getcookie ここから function getck(){ cklng = document.cookie.length; ckary = document.cookie.split("; "); ckstr = ""; i = 0; while (ckary[i]){ if (ckary[i].substr(0,10) == "XX_Agency="){ ckstr = ckary[i].substr(10,ckary[i].length); break; } i++; } ckary = ckstr.split("%00"); if (ckary[0]) document.forms[0].id_agency.value = unescape(ckary[0]); } //getcookie ここまで javascriptはあまりわかりませんので、本を引きながら作っています。どなたか、指摘お願いします。

  • JavascriptでsetCookie? 2時間の期限をつけたいのですが…

    クッキーを書き込む方法をWebや本で模索していたのですが、どうもわからなくなってしまいました。 「Javascriptでクッキーを書き込むには、docment.cookieという書き方をする」と色々な入門書やサイトに書いてあるのですが、有効期限を「○年○月」ではなく「今から2時間後」にする方法を検索してみると、「setCookie」という書き方でばかり出て来ます。 今から2時間後の期限で、「ENTERFROM」という名前のクッキーに「NEWSITE」という値を書き込んで記憶させたいのですが、次のソースを普通のHTML書類に書き足せばこの目的は実現するでしょうか? <SCRIPT LANGUAGE="JavaScript"> <!-- kigen = new Date(); kigen.setTime(d.getTime() + 2*60*60*1000); //2時間後 expire = kigen.toGMTString(); setCookie("ENTERFROM", NEWSITE, expire); //--> </SCRIPT> また、これでOKだとして、こうして書き込んだクッキーの内容をあとでフォームメールでからメール送信するには、フォーム内に <SCRIPT language="JavaScript"><!-- document.write("<INPUT type=\"hidden\" name=\"iriguchi\" value=getCookie(ENTERFROM)>"); // --></SCRIPT> とでも入れれば送信できるでしょうか? 間違っているところがありましたら、…多分いくつもあるような気がするのですが (^^; 、どう直したら正しくなるか教えて頂けないでしょうか? どうかよろしくお願い致します。

  • 期限内の場合はクッキーを上書きしないようにする方法

    a-site.comとb-site.comとc-site.comの全ページに下のようなJavascriptを埋め込んでクッキーを残そうとしています。 <script type="text/javascript"> <!-- var name = "iriguchi"; // クッキーの名前 var value = "a-site"; // クッキーの値 (サイトごとに変える) var period = 30; // 有効期限(分) // 有効期限の作成 var nowtime = new Date().getTime(); var clear_time = new Date(nowtime + (60 * 1000 * period)); var expires = clear_time.toGMTString(); // クッキーの発行(書き込み) document.cookie = name + "=" + escape(value) + "; expires=" + expires; // --> </script> この場合、a-site.comにアクセスした人がb-site.comにアクセスした場合、a-site.comで書き込まれたクッキーが期限内であっても期限切れでも、b-site.comにアクセスした時点でクッキーの中身は「b-site」に書き換えられ、期限も更新されてしまいます。 これを、クッキーの期限内であればどのサイトを回ろうと最初に書き込まれたクッキーの内容が保持され、期限が切れた時点で新たな内容に書き換えられるようにしたいのですが、それには上のソースに何か書き加える必要がありますよね? 書き方がわからないので文法のむちゃくちゃな自己流で書きますが if (a-site.comで書かれたcookieが期限内){クッキーは前のまま継続} else if (a-site.comで書かれたcookieが期限切れ){新期限 =expires、iriguchi = b-site} といったようにしたいのですが、現在のJavascriptのどこにどういう文を書き加えたらいいでしょうか?

専門家に質問してみよう