• 締切済み

NN4だけクッキーが入らない

ログインのCGIを作っているのですが、Set-Cookieヘッダにdomainの指定をすると、NN4ではクッキーが入らないのです。 出力しているヘッダは次のような感じです。 Set-Cookie: A=1; expires=Thu, 01-Jan-2004 00:00:00 GMT; domain=.hoge.jp; path=/ 他のブラウザではうまく行くことを確認しています。 またNN4でも、domainの指定さえなければうまく行きます。 思い当たる要因というと、 ・開発環境がローカルサーバ(192.~) ・ログインページがサブドメインなし(http://hoge.jp/~) くらいです。(関係ないかもしれませんが、一応) 解決方法などありましたら、よろしくお願い致します。

  • mone
  • お礼率70% (80/114)
  • CGI
  • 回答数1
  • ありがとう数0

みんなの回答

noname#151446
noname#151446
回答No.1

「ドメインは、".com", ".edu", "va.us"のような形式のドメインを除いて、ドメイン名の中に少なくとも2つか3つのピリオドを含んでいなければいけません。」 ※某サイトより引用。 これに引っかかっているのではないのでしょうか。 ピリオドが2つだから弾かれているのかもしれないです。

参考URL:
http://www.studyinghttp.net/cookies.html#header
mone
質問者

補足

回答ありがとうございます。 バーチャルホストをhoge.co.jpに変更し、domainの値も.hoge.co.jpとしましたが、やはりダメなようです。 ふと思いつきでwww.hoge.jpでアクセスしてみたところ、domain=.hoge.jpのクッキーが入りました。 ・hoge.jp からは .hoge.jp では入らない。 ・www.hoge.jp からなら .hoge.jp で入る。 ということのようです。 とりあえずNN4の場合のみ、hoge.jpへのアクセスをwww.hoge.jpへリダイレクトするように設定することとしました。 もし、上記の現象について何かしらの情報がありましたら、またよろしくお願い致します。

関連するQ&A

  • クッキーが消える

    会員制ページを公開しています。 ログインに,ID・パスワードの入力が必要で, 「ID・パスワードを保存する」というチェックボックスもついています。 システムの方は,大半がperlで作られています。 ログインする際,「ID・パスワードを保存する」にチェックを入れて, ログインしても,IEでは,ID・パスワードが保存されません。 FirefoxやOperaでは保存されます。 保存のプログラムは以下の通りです。 print "Set-Cookie: DCPP=$cookdata; expires=$gmt; domain=$dom; path=/;\n"; $cookdataには,URLエンコードした形で,「ユーザID<>パスワード<>」 という文字列が入っています。 $gmtには,Thu, 04-Jan-2007 10:17:39 GMTというような文字列が入っています。 $domには,example.comというような文字列が入っています。 だれか分かる方がいたら,よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • Cookie の保存について

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

  • クッキーの基礎的なことについて

    print "Content-type: text/html\n\n"; #クッキーがないときの動作。 #クッキーがない場合クッキーを期限1日で発行する。 if(!$ENV{'HTTP_COOKIE'}){ #クッキーが存在する場合の動作 print "クッキーないない<br>\n"; #1時間先のグリニッジ標準時を取得し、weeksとmonthsを定義 ($gmSec, $gmMin, $gmHour, $gmMDay, $gmMon, $gmYear, $gmWDay, $gmYDay, $gmIsDst) = gmtime(time + (3600 * 24)); $gmYear += 1900; @weeks = ('Sun', 'Mon', 'Tue', 'Web', 'Thu', 'Fri', 'Sat'); @months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); #クッキーの有効期限をその日の1日後までにする $limitTime = sprintf("%s\n, %02d-%s-%04d %02d:%02d:%02d GMT",$weeks[$gmWDay], $gmMDay, $months[$gmMon], $gmYear, $gmHour, $gmMin, $gmSec); #クッキー発行 print "Set-Cookie: myBool=1; expires=$limitTime\n"; print "\n"; } else { #クッキーがあった場合の動作。クッキーありと表示するだけ。 print "クッキーあり。"; } クッキーの発行を見ると print "Set-Cookie: なんたらかんたら"; らしいのですが、printでこう書くだけでクッキーが発行できたことになるのですか? 実行しても、ただ単に例えば Set-Cookie: myBool=1; expires=Mon , 08-Aug-2005 12:11:43 GMT というようになるだけです。 初心者でまだ1度もクッキー作成成功してないのですが何がいけないのでしょうか。

    • ベストアンサー
    • Perl
  • このCGIサブルーチンを解説してください。

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=393199 の続きのようなかんじですが…。 下記のコードがわかりません。 おわかりになるかた解説してください。 sub setCookie{ local($tmp, $val); $val = $_[1]; $val =~ s/(\W)/sprintf("%%%02X", unpack("C",$1))/eg; $tmp = "Set-Cookie:"; $tmp . = "$_[0]=$val;"; $tmp . = "expires=Thu, 1-Jan-2030 00:00:00 GMT\n"; return($tmp); } 1行目:サブルーチン名 2行目:$tmp,$valをそれぞれローカル変数に設定。 3行目:? 4行目:$valを16進数から1バイトずつ変換? 5行目:$tmpに"Set-Cookie:"を代入。 6行目:$tmp.に"$_[0]=$val;"を代入。 7行目:$tmp.に"expires=Thu, 1-Jan-2030 00:00:00 GMT\n"を代入。 8行目:? というところまではなんとか解釈したのですが、「?」の部分がわかりません。 Set-Cookieヘッダを作成しているらしいのですが…。

    • ベストアンサー
    • CGI
  • Cookieがクリアされない

    入力フォームを作っています。 トップのフォームにクッキーをセットして、確認画面→登録完了フォームでクッキーをクリアにしています。 クッキーの登録は全て良いんですが、Cookieは、IEではちゃんとクリアされるんですが、Netscape,Firefoxではクリアされません。 色々試したんですが、お手上げ状態です。 ご教授お願いします。 print "Content-type: text/html\; charset=shift_jis\n"; $CookieSet .= "Set-Cookie: $CookieName=$CookieValue\; expires=$GmtString\;"; print "\n"; print "Content-type: text/html\; charset=shift_jis\n"; $ClearCookie .="Set-Cookie: $CookieName=clear\; expires=$ExpiresTimeString\;";#過去の日付'Thu, 01-Jan-2000 00:00:00 GMT' print "\n";

    • ベストアンサー
    • Perl
  • クッキーの保存場所

    今、自分でCGIで掲示板にクッキー機能をつけているところなのですが、保存されたクッキーファイルのありかがよく分かりません。 Windows XP → 「\Documents and Settings\ユーザ名\Cookies\」 とあるページに書いてあったので、そのフォルダをみてみたのですが、他のクッキーファイル(ユーザ名@aabbcc.txt といったファイル)はあるのですが、自分で作った掲示板のクッキーファイルらしいものがありません。でも、掲示板のクッキー機能は働いているようです。 一応クッキー保存ルーチンを以下に示します。 sub set_cookie { ($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + 60*24*60*60); $yearg += 1900; $date_gmt = "$youbi, $mdayg\-$mong\-$yearg $hourg:$ming:$secg GMT"; $cookies="name\:$FORM{'name'}\,email\:$FORM{'email'},url\:$FORM{'url'},pass\:$FORM{'pass'}"; print "Set-Cookie: SAMPLE=$cookies; expires=$date_gmt\n"; }

    • ベストアンサー
    • CGI
  • Cookieを用いてのセッション管理

    以前も問い合わせさせていただいた件なのですが、 未だ解決していないので、再掲させていただきます。 やりたいことは、 個人認証のページを作り、ログオフ後、ブラウザの戻るボタンを押しても、 ログイン中となるのを避けたい。 以下のような感じで、cookieを使って実現しようとしているのですが、 ログオフ時にcookieの削除は、うまくいったのですが、 ブラウザの戻るボタンでログイン中のページに戻ると、 $ENV{'HTTP_COOKIE'}の中身を見ると、実際にはCookieは削除されているにも関わらず、 Cookieの情報がよみこまれているため、ログイン中となってしまいます。 何か基本的なやり方を間違っているような気がします。 どなたかご教授願います。 ↓a1.cgi(ログイン画面)--------------  : (ID、パスワード認証後) #Cookie書き込み print "Content-type: text/html\n"; print "Set-Cookie: NAME=aaa; expires=Tue, 1-Jan-2030 00:00:00 GMT;\n"; print "\n";  : ↑a1.cgi(ログイン画面)-------------- ↓a2.cgi(ログイン中)--------------  : #Cookie読み込み $cookie01 = "$ENV{'HTTP_COOKIE'}\n";  : <HEAD> <!-- キャッシュクリア --> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT">  : </HEAD>  : ↑a2.cgi(ログイン中)-------------- ↓a3.cgi(ログオフ)--------------  : #cookie削除。 print "Content-type: text/html\n"; print "Set-Cookie: NAME=aaa; expires=Fri, 31-Dec-1999 23:59:59 GMT;\n"; print "\n";  : </HEAD>  : ↑a3.cgi(ログオフ)-------------- ※a1.cgi、a2.cgi、a3.cgiは同じディレクトリです。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • 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=/;"; //クッキー発行 }

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

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

  • クッキー発行がFirefoxだとできるのにIEだとできない

    たびたびすみません。以下ソース。 #現在時から何秒足すか、又は引くか。 $AddOrDeduct = 3600 * 24; print "Content-type: text/html\n"; #クッキーがないときの動作。 #クッキーがない場合クッキーを期限1日で発行する。 if(!$ENV{'HTTP_COOKIE'}){ #クッキーが存在する場合の動作 #1日先のグリニッジ標準時を取得し、weeksとmonthsを定義 ($gmSec, $gmMin, $gmHour, $gmMDay, $gmMon, $gmYear, $gmWDay, $gmYDay, $gmIsDst) = gmtime(time + $AddOrDeduct); $gmYear += 1900; @weeks = ('Sun', 'Mon', 'Tue', 'Web', 'Thu', 'Fri', 'Sat'); @months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); #クッキーの有効期限をその日の1日後までにする $limitTime = sprintf("%s\n, %02d-%s-%04d %02d:%02d:%02d GMT", $weeks[$gmWDay], $gmMDay, $months[$gmMon], $gmYear, $gmHour, $gmMin, $gmSec); #クッキー発行 print "Set-Cookie: myBool=1; expires=$limitTime\n"; print "\n"; print "クッキーないない($limitTime)\n"; } else { #クッキーがあった場合の動作。クッキーありと表示するだけ。 print "\n"; print "クッキーあり。"; } 問題はタイトルのように、Firefoxだとちゃんと2度目以降は「クッキーあり。」と表示されるのですが、IEだとずっと「クッキーないない(ry」のままなんです。 まだクッキーに関しての知識があまりないので解決法が分からなく、質問させてもらいました。 よろしくおねがいします。

    • ベストアンサー
    • Perl