• ベストアンサー

クッキー発行が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」のままなんです。 まだクッキーに関しての知識があまりないので解決法が分からなく、質問させてもらいました。 よろしくおねがいします。

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

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

未確認ですが、$limitTime 内の中途半端なところに \n が入っているのが原因ではないでしょうか? $limitTime = sprintf("%s\n, %02d- ・・・               ^^^ 本来こんなところに改行があってはいけないので、これを抜いてみてください。

ggaogg
質問者

お礼

ぐふあああああありがとうございますう。 "\,"とするのを"\n,"としていました。。 ありがとうございます。 自分の腕に自信が持てるものだとミスを気にするのですが、そうでないものは考えそのものの間違えをきにしてしまいます。。 なさけない質問ですみませんでした。 しかし助かりました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

http://okweb.jp/kotaeru.php3?q=1565761 の#1で指摘されていることが原因じゃないでしょうか

ggaogg
質問者

お礼

きちんとクッキー発行は最初にしています。 http://okweb.jp/kotaeru.php3?q=1565761 の質問のときには、Firefoxですらクッキー発行ができなかったのが、Firefoxではできるようになりました。 また起こる動作も全く別です。 もし同じ原因だとしても、自分では解決する知識と自信がないので、どのあたりがおかしいのかのご指摘もらえるとうれしいです。

関連するQ&A