• 締切済み

cookieの有効範囲について

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

みんなの回答

回答No.1

"domain=" + location.hostname + ";" の部分を消してみてはいかがでしょうか。

385island
質問者

お礼

ご丁寧に回答していただき有難うございました。 他の解決方法ですが解決致しました。

関連するQ&A

  • Cookieの設定

    JavaScriptでCookieを使ってみようと思い、 以下のようなサンプル関数をもらってきたのですが。 この中の 24 * 60 * 60 * 1000 * 31 * 1 ってそれぞれの数値は何を示しているのでしょうか?? 消去日の設定部分なのは良くわかるのですが。 初歩的な質問で、すいませんが、どなたか教えてください。 ------以下サンプルの関数------ 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 + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } // 消去日の設定は、この関数の中に指定します function set_data(name,put_data) { var expdate = new Date (); expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31 * 1)); SetCookie (name,put_data,expdate); }

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

  • jquery.cookie.jsを使用していますが

    jquery.cookie.jsを使用していますが、ページ遷移した際に、クッキーが外れるみたいなのです。 現象としては、文字サイズや背景色を変えて(別CSSを読み込む)同じ階層のページへ遷移してもそのまま文字サイズも背景色も適用されたままなのですが、別階層(index.htmlからlink/a.htmlなどフォルダ内のHTMLファイル)に遷移すると適用が外れます。そしてlink/a.htmlでサイズ変更してそこからindex.htmlに戻ると変えたはずの文字サイズなどは解除されています。 おそらくjquery.cookie.jsの問題かと思いますが、どこをいじればいいのか分かりません。 お願いします。 以下、jquery.cookie.jsのソースです。 jQuery.cookie = function (key, value, options) { // key and value given, set cookie... if (arguments.length > 1 && (value === null || typeof value !== "object")) { options = jQuery.extend({}, options); if (value === null) { options.expires = -1; } if (typeof options.expires === 'number') { var days = options.expires, t = options.expires = new Date(); t.setDate(t.getDate() + days); } return (document.cookie = [ encodeURIComponent(key), '=', options.raw ? String(value) : encodeURIComponent(String(value)), options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : '' ].join('')); } // key and possibly options given, get cookie... options = value || {}; var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent; return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null; };

  • cookieによる制限の件で

    function getExpires(dd){ var now = new Date(); var expires = new Date(now.getTime()+24*60*60*1000*dd); return(expires.toGMTString()); } function setCookie(key, value, limit){ var cValue = key + "=" + escape(value) + "END;expires=" + getExpires(limit) + ";"; document.cookie = cValue; } function getCookie(key){ var cValue = document.cookie; var sIndex= cValue.indexOf(key,0); if(sIndex > -1){ sIndex = cValue.indexOf("=", sIndex) + 1; eIndex = cValue.indexOf("END", sIndex); return unescape(cValue.substring(sIndex, eIndex)); }else{ return ""; } } var value = getCookie("visitCnt"); var cnt = 1; if(value >= 6){ location.href="http://yahoo.co.jp"; } if(value == ""){ document.write(""); }else{ cnt = parseInt(value) + 1; document.write(""); } setCookie("visitCnt", cnt, 365*2); 以上のソースで、6回目の訪問でyahooへ飛ぶようには出来たのですが、 これだと、設置したページへ6回訪問で、となってしまうのですが、 サイト自体への6回目のアクセスで、というふうに、ページ自体にこだわらずへの設定はどう記載すれば、よろしいでしょうか?? よろしくお願いいたします。

  • Perl cookie 削除か書込

    Perl cookie cookie→NAMEというクッキーデータを 削除か、まったく別のものに書き換えたいのですが、どうすればいいのでしょうか? 現在はJavaScriptで書き込んでいるのですが、 <script> \$(function(){ \$('#NAME).val(\$.cookie("NAME")); \$("#Login").click(function(){ \$.cookie("NAME",\$('#NAME).attr('value'), { expires: 365 }); location.href="$MYURL" }) }) </script> Perl ソース中で、PerlでこのNAMEを消したい 瞬間があります。 もしくは、書き換えたいです。 やりかたを教えて下さい。 調べてはいるものの うまくいきません。

  • Cookie の保存について

    Perl であれば、 「 expires=Thu, 1-Jan-2030 00:00:00 GMT; ~ 」 の後に、domain 名や、パス名を書くことで、 保存するcookie のファイル名をきめる事が できますが、JavaScript では同じような指定は できないのでしょうか?? 任意のcookie ファイル名を読んだり追記したり したいのですが・・・

  • JavascriptとCookieについて

    HTML【index.php】でフォームを作り、クリック時にCookieに保存 →別ページ【input.php】で保存したCookieで判断し内容を変更するページを作ろうと思っています。 http://memo.ark-under.net/memo/404 こちらのページを参考に以下のように作ってみたのですが動作しません。 JavascriptとPHPを使えたらどんな方法でも良いので、ご教授お願い致します。 最近勉強を始めた初心者ですので、なるべく簡単に教えていただけると幸いです。 ----------------------------------------------------------------------- ----------------------------------------------------------------------- 【index.php】 <script type="text/javascript"> // クッキー保存 setCookie(クッキー名, クッキーの値, クッキーの有効日数); // function setCookie(c_name,value,expiredays){ // pathの指定 var path = location.pathname; // pathをフォルダ毎に指定する場合のIE対策 var paths = new Array(); paths = path.split("/"); if(paths[paths.length-1] != ""){ paths[paths.length-1] = ""; path = paths.join("/"); } // 有効期限の日付 var extime = new Date().getTime(); var cltime = new Date(extime + (60*60*24*1000*expiredays)); var exdate = cltime.toUTCString(); // クッキーに保存する文字列を生成 var s=""; s += c_name +"="+ escape(value);// 値はエンコードしておく s += "; path="+ path; if(expiredays){ s += "; expires=" +exdate+"; "; }else{ s += "; "; } // クッキーに保存 document.cookie=s; } <form action="input.php" method="post"> ボタン1:<input type="submit" name="input" value="入力" onsubmit="return setCookie('hanteisql','1',7)"> ボタン2:<input type="submit" name="input2" value="入力" onsubmit="return setCookie('hanteisql','1',7)"> </form> ----------------------------------------------------------------------- ----------------------------------------------------------------------- 【input.php】 <?php echo "クッキーは".$_COOKIE["hanteisql"]."です。" ?> -----------------------------------------------------------------------

  • Cookieへの書き込みは出来たのですが・・・

    Cookieに書き込んだjavaScriptの情報をjavaで取得する方法はありますか? ソースは下の通りです。 <script language="JavaScript" type="text/javascript"> <!-- kikan=90; my_name="1"; my_datas=new Array(); my_datas2=new Array(); my_name="TestMan"+my_name; function DataRead() { if(document.cookie.length>0 && document.cookie.indexOf(my_name)!=-1) { my_datas=document.cookie.split("; "); for(i=0; i<my_datas.length; i++) {if(my_datas[i].indexOf(my_name)!=-1)break;} my_datas2=my_datas[i].split("="); my_datas2[1]=unescape(my_datas2[1]); } return my_datas2[1]; } function DataWrite(datas) { jikann=new Date(); ima=new Date(jikann.getTime()+(kikan*24*60*60*1000)); datas=escape(datas); document.cookie=my_name+"="+datas+";expires="+ima.toGMTString(); return; } CookieData="TEST"; DataWrite(CookieData); //--> </script>

  • phpでのCookieのパスの書かれ方

    phpの初心者なのですが、Cookieでうまく情報の引き渡しができないので、アドバイス頂けないでしょうか? test1でCookieを初期設定した後に、Cookieを使ってtest2を呼び出し、 test2上で設定し直した値でCookieを書き変えてtest2を再呼び出ししています。 再呼び出しした時のCookieが読めないので、ブラウザを調べてみると、yyという名前のクッキーが2つ存在しているためだと判りました。値は確かに置き変わっているのですが、パスが違っているので読み出せないようです。 初期設定した時のパスは /tst/  → test1.phpでsetcookieで設定したもの 再設定した時のパスは /  → test2.phpの中のJavascriptで設定したもの になっていました。 ▽test1.php (/svr1/tst/) setcookie("yy",$yy,0,"./"); (略) header("HTTP/1.1 301 Moved Permanently"); header("Location: test2.php"); ▽test2.php function set_Cookie() { yy = parseInt(document.f1.ck_yy.value); document.cookie = "yy=" + yy + "; path=/"; return true; } <php? $yy = $_COOKIE['yy']; ?> <form name="f1" action="test2.php" method="post"> <input name="yy">  <input type="submit" value="実行" onClick="set_Cookie()">   </form> setcookie の引数であるパス名を最初は省略していたのですが、/tst/というパスが入ってきてしまうため、パス名をあえて ./としてみたのですが結果は同じでした。 ちなみにtest1の呼び出し元は別のサーバーで以下のように呼びだしています。 ▽test0.html (/svr0/wwwroot/) <a href="http://svr1/tst/test1.php">test1</a> パス名はどのように決まるのでしょうか?

    • ベストアンサー
    • PHP
  • cookieについて教えてください

    (A) webサーバー側の設定によって、cookieにパソコンのMACアドレス、コンピュータ名、フルコンピュータ名、またはパソコン内に存在するファイル名を記録させることは出来るのでしょうか? (B) セッションcookie がwebサーバーから与えられる時には、ドメインの指定も備わっているため、セッションcookieは同時にファーストパーティーの形態を取り、[ファーストパーティの Cookie をブロックする]設定にしていると セッションcookie もブロックすると考えていたのですが Internet Explorer で、[ファーストパーティの Cookie をブロックする][常にセッション Cookie を許可する]状態でyahooメールにログインできました。 なぜでしょうか? http://itpro.nikkeibp.co.jp/article/COLUMN/20080221/294407/ セッションcookieにはドメイン指定があると書いてあります (1. Webアプリケーションが、Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure (NAME=VALUEのみ必須)という形式のHTTPヘッダーを含めて、レスポンスを返す。) (C) http://blog.tokumaru.org/2013/02/purpose-and-implementation-of-the-logout-function.html ログインには[BASIC認証]と[フォーム認証]がありますが、ログアウトした場合、[BASIC認証]ではパソコン内に保存されたcookieは削除されず、[フォーム認証]では削除されるのでしょうか? (D) http://blog.tokumaru.org/2013/02/purpose-and-implementation-of-the-logout-function.html [フォーム認証]では、パソコン内のcookieにはセッションIDが保存されるだけだとありますが、googleや楽天のような大手ではなく、小さなショッピングサイトの中には[フォーム認証]でもcookieにIDとパスワードを保存するところがあるのでしょうか? それとも、そもそも[フォーム認証]では、cookieにIDとパスワードを保存できない、または出来るとしても今は保存するサイトはまず無いと考えてよいのでしょうか? (E) yahooやgoogleのログイン画面では、[ログインしたままにする][ログイン状態を保持する]というチェックボックスがあります。 このチェックボックスにチェックを入れてログインすると、cookieにはセッションIDではなく、IDとパスワードが保存されることになるのでしょうか? (A)(B)(C)(D)(E)について教えてください。