- ベストアンサー
再び、他のクッキーを再利用する方法
先日同一サイトのクッキー利用について ご回答いただいたばかりなのですが、 再度お願いがございます。 以下のログイン画面で クッキー書き込み http://www.****.co.jp/xxx/nn/logon.asp エクスプローラでクッキーファイルをみると [ログイン名]@nn[1].txt が作成できていました。 しかし以下のメインメニューで http://www.****.co.jp/mm/mein.asp 最初のクッキー情報([ログイン名]@nn[1].txt) を読み込みたいのですがどうしても読めません。 ログインは同一の人物です。 初心者なのでできましたらソースを頂けると 助かります。 最初のログイン画面は市販のプログラムなので クッキー情報を書く場所が変更できません。 どうしても最初のログイン画面でのクッキー情報 を利用したいのですが.....。 あと出来ましたら以下のクッキー情報の『1111』のみ を取得したいのですが ([ログイン名]@nn[1].txt の内容 ) Login 50:20:1111 www.****.co.jp/xxx/nn/ 1536 2865430528 30124157 1441232768 29663592 読み込み方がよく分かりません。 お手数をお掛け致しますが宜しくお願い致します。
- ark2004
- お礼率32% (22/67)
- JavaScript
- 回答数4
- ありがとう数1
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
私の言う、ドメインの設定とかって言うのは、クッキーをセットする方なので、getCookieのプログラムを見せられてもしょうがないです。 なので、似たような動作をするものを作ってみました。 セッション中だけ有効なら期限は必要ありません。 <script type="text/javascript"> <!-- function setCookie(key, value){ expireDate = new Date(); expireDate.setFullYear(expireDate.getFullYear() + 1); //有効期限を1年後にする wk = key + "="+escape(value)+";"; wk = wk + "expires=" + expireDate.toGMTString()+ ";path=/;domain=www.****.co.jp;"; document.cookie = wk; } function getCookie(key){ wk = document.cookie+";"; pos = wk.indexOf(key, 0); if(pos != -1){ ePos = wk.indexOf(";", pos); wk = wk.substring(pos, ePos); sPos = wk.indexOf("=", 0); if(sPos == -1)return(""); // = がない return(unescape(wk.substring(sPos + 1, wk.length))); } return(""); }
その他の回答 (3)
Cookieは、それをセットしたディレクトリの階層以下にあるファイルにアクセスした時か、path値で設定されたパスのディレクトリ以下にあるファイルにアクセスした時にのみ、サーバに送信されます。 そのため、Cookieをセットするページの側でpath値の設定をする事ができない場合、その階層よりも上のディレクトリか、それを親に持つディレクトリにあるページから、セットされたCookieを取り出すことはできないようになっているはずです。 (それができると、セキュリティ上の問題になってしまいます) ですので、ご質問にあるケースの場合、目的のCookieを当該のページで取得することはできないように思います。 Cookieをセットするページの方をどうにかしていじって、Cookieをセットする時にpath値も設定するように改変するか(←ご質問文の状況では、こちらは難しいようですね)、もしくはそのCookieを渡したいページのあるディレクトリを、そのCookieをセットしているページのあるディレクトリ以下に移動するようにする必要があると思います。 あまり参考にならないかもしれませんが、アドバイスとして…
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
クッキー登録時のドメインを http://www.****.co.jp/ にしてみてはどうでしょう?
- RAPTsong
- ベストアンサー率42% (74/175)
あなたが、具体的に試行したコードも併記してください。 こういった場合、クッキー情報は、セッション管理しないと処理できないと思われますが、 現在はどのように管理されているのでしょうか? また、具体的なコードを記載するとよいかと思われます。
お礼
ありがとうございました
関連するQ&A
- 同一のwebサイトでクッキー情報を共有
以下のログイン画面で入力して http://www.aaaa.co.jp/nn/logon.asp (ユーザやパスワードを入力する画面) 以下のメインメニューでログイン情報を取得 http://www.aaaa.co.jp/mm/mein.asp (ログインしたユーザにあった情報を表示) 上記のように同一ドメインにてクッキーの情報 を渡したいのですが可能でしょうか? お願い致します。
- ベストアンサー
- JavaScript
- クッキーの喪失??
例えばログイン画面などで ログイン名をクッキーとして保存しておき 次回アクセス時も記憶しているものを表示する時、 RESPONSE.Cookies("login") = "guest" などとしているのですが、 たまにログイン情報を保持していない時があり コントロールが空白の場合があります。 これは何故でしょうか? よろしくお願いします。
- ベストアンサー
- Microsoft ASP
- クッキーについて
はじめてクッキーを使ったログイン画面を作ろうと思います。 クッキー自体の動作などがあまりよくわかっておらず、HPを見ても、私が求めるものに見当たりません。 (探し方が悪いのかも・・・・) 実際に作りたいのはBasic認証ではなく、単なるログイン(ID・PASSWD)をデータベースと比較し、そのIDによって表示するHTMLが違うようなつくりにしたいと思っています。 この場合ハッシュ関数にIDやPASSの情報をもっていたほうがいいのでしょうか? また、クッキーを使う際に、これだけは基本というものがあれば、教えていただけたらありがたいです。 参考になるURLがあれば教えてください。
- ベストアンサー
- PHP
- ドメインを名称にするとクッキーが無効になってしまう。
お分かりになる方、宜しくお願い致します。 ログイン画面でログイン後、クッキーへ書き込みをする仕組みにしていますが、URLを(ドメインを)IPアドレス指定で下記のように http://xxx.xx.xxx.xxx/test/ 指定するとクッキーが保存されますが http://aaa/test/ のようにすると保存されません。 まるで分からず困っております。 【開発環境】 OS:WindowsXP Webサービス:IIS 言語:PHP4 雑な文章で申し訳ございませんが 宜しくお願い致します。
- 締切済み
- PHP
- IE6でクッキー情報はどこに格納されているのですか?
クッキーについていくつかわからないことがあります。 1.IE6でクッキーが保存されているといわれているC:\Documents and Settings\user名\Cookiesにある.txtのファイルがそれぞれのドメインに対するクッキーなのでしょうか?このファイルを消してもクッキー情報が残っているようです。どこか別の場所に保存されているのですか? 2.IE6のオプションで「Cookieの削除」ボタンを押しても上記パスにある.txtファイルは削除されません。ということはやはりCookie情報は他にあるということでしょうか? お手数ですがよろしくお願いします。
- ベストアンサー
- HTML
- WEBのクッキーとセッションは、クライアント側で変更できるのでしょうか?
クッキーとセッションについて教えてください。 (例として使用している言語はphpです。) オートログイン機能用に、IDとパスワードの情報をクライアント側のクッキーに保存してもらい、 指定のサイトをブラウザで開いたらクッキーから情報を読み込み、 該当したらログイン用のセッションにサイトに入れるフラグを入れるとします(たとえば$_SESSION["login"]="on")。 この場合、セッションの[login]の値が"on"なら、ログインできるのですが、 ブラウザ自体の機能やUNIXのプログラム等にセッションの値自体を変更する何かしらの方法があり、 IDとパスワードをしらなくてもセッションの[login]を"on"にしてログインされてしまうということはあるのでしょうか? また、今回の処理でクッキーを読み込む際、変数に一度格納している(例:$id=$_COOKIE["id"])のですが、 この場合でも、別ドメインのサイトに行った際IDやパスワードがログとして表示されてしまうのでしょうか? (セッションは別ドメインのサイトにリンクした際、飛び先のドメインでも並文としてログが表示されてしまうらしいので) 教えていただけるようお願いします。
- 締切済み
- ネットワーク
- 次の画面に遷移後もクッキーを取得するには
現在PHPでクッキー認証を行っているのですが、 index.phpでまず、メニュー画面にいこうとするのですが、 $_COOKIE['id'] == "" クッキーに何もIDが入っていなかったら、もしくはIDがあっても、パスワードが間違っていたら、ログイン画面に遷移するようにし、その画面でログイン情報を入力すると、メニュー画面に遷移するというところまではいいのですが、 クッキーの情報を次の画面(例えば、test.php)に遷移するときのPHPにももたせたいのですが、次の画面ではIDがうまくとれません。 クッキーではPHPがかわると、IDもNULLになってしまうのでしょうか?
- 締切済み
- PHP
- クッキーの名前について
はじめまして、PHPでクッキーを利用したいのですが、 クッキーの名前で悩んでいます。 Windowsに保存されているクッキーを見てみると、 クッキーの名前が、 Cookie:******@?????? ****:Windowsにログインしているユーザー名 ????:ドメイン となっているものがあります。 概して大手サイトより発行されたクッキーがこのようになっているように思えます。 自分で作成したPHPでクッキーを発行してみると、 setcookie()で指定したpathの部分が名前となるようです。 また、pathを指定しないと発行元のphpが存在するディレクトリ名に なります。 クッキーの名前が”Cookie:******@??????”となるのは、何か意味があるのでしょうか? セキュリティーなどにからんでこうなるとしたら、同じようにしないといけないのかな?でも、Windowsのユーザー名ということは、他のOSでは不都合が生じるのかな?と悩んでしまい、質問させていただきました。 お分かりになる方いらっしゃいましたらご回答よろしくお願いします。
- ベストアンサー
- PHP
- クッキーとアクセス解析について
パソコンにログインする時に使用するユーザアカウント名@サイトのアドレス、というファイル名でクッキーが作成されると思います。 たとえばユーザアカウント名がuserであり、このサイトに接続すると、「Cookie:user@oshiete.goo.ne.jp/」というファイル名となります。 アクセス解析をつけているサイトを閲覧した場合、この@の前についているユーザアカウント名が、サイト管理者にばれてしまうことはあるのでしょうか?
- ベストアンサー
- Windows XP
- クッキーで利用者を判別するサイトで、2台のPCを同じ(1台)ように見せることはできますか?
業務で利用しているサイト(店舗向けの商品検索サービス)なのですが、 ひとつのIDで2台のPCから同時に利用することができません。 詳細は以下のようなものです。 このサイトを2台のPCで同時に利用する方法はないのでしょうか? おそらくクッキーによって判別していると思ったので上のようなタイトルですが、 違う要因かもしれません。 よろしくお願いします。 PC_1でログイン中の場合、PC_2ではログインできない (「他のPCが利用中」と表示される) PC_2で利用する場合は、一度PC_1をログアウトしなければならない ちなみに、 PC_1でログイン →PC_1に作成されたクッキーのファイルをPC_2にコピー →PC_2でアクセス では無理でした。
- ベストアンサー
- ネットワーク
補足
すみません。 クッキー情報 [ログイン名]@nn[1].txt は市販のソフトで書き込んでいる為にドメインに 変更することが出来ません。 以下のソースですが宜しくお願いいたします。 <html> <head> <title>テスト</title> <script type="text/javascript"> <!-- Login = getCookie("Login"); if Login == "") { Login = 1; } document.write("Login:" + Login + "<br>"); 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(""); } // --> </script> </head> <body> </body>