このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

cookieの最後に;がついてしまいます

発言者:mori
( Date Saturday, February 05, 2000 17:00:50 )


Perl5(のつもり)のBBSにがんばってCookieを付けてみたのですが、会社のG3でもFMVでもうまく保存されるのに、自宅のiMac(revisionB)では、最後に;が付いてしまいます。

if($cookie){
省略; 
print "Set-Cookie: pasw= $pasw; expires=$date_gmt\n\n";}
else{print "\n";}
}

スクリプトの途中で変な事をしているのかもしれません。いいかげんなスクリプトでは、サーバが変わると解釈が変わっちゃったりするようですが、クライアントによって不都合が表出するというような事はあるのでしょうか?

ショージ さんからのコメント
( Sunday, February 06, 2000 01:41:44 )

Cookieの処理はWebブラウザによって異なってきますので、うまく
いかないほうをケア出来るように実装する必要があります。

私のサーバ環境ではMacintosh版のIEではCookieの処理はあまりう
まくありません。まぁ、CookieというのはNetscapeのものなのだ
と思って自分自身を納得させていますが・・・。

ちなみに

print "Set-Cookie: pasw= $pasw; expires=$date_gmt\n\n";}

だと、半角スペースをデリミタとして判断されているのかもしれ
ませんので、

print "Set-Cookie: pasw=$pasw; expires=$date_gmt\n\n";}

としてやったほうが良いかもしれません。

どちらにせよ、処理はWebブラウザに依存しますので、これでは
直らない可能性も高いのですが。

mori さんからのコメント
( Sunday, February 06, 2000 02:57:01 )

ジョージ様
設置したcgiを見てみましたが、なぜかpasw=$pasw;となっていました。
G3とiMacではNetscape4.7で確認しましたが、G3ではだいじょうぶでした。
whindowsではIEで大丈夫でした。
さっそく同じiMacでMacintosh版IEでやってみると
なんと大丈夫でした。
不思議としかいいようがないですね。
ご教示ありがとうございました。

mori さんからのコメント
( Monday, February 07, 2000 09:20:01 )

初期設定のmagic cookieを見てみると;は付いていません
フォームのvalueにcookieから書き出す時に問題があるのかもしれませんが
ブラウザによってCGIへの対応が変わる事があるのでしょうか?

ショージ さんからのコメント
( Monday, February 07, 2000 13:46:27 )

>ブラウザによってCGIへの対応が変わる事があるのでしょうか?

CGIへの対応ということではなくて、環境変数の取り扱いが異なることが
あるので、CGI側でそれをケアしてやらなければいけないと思います。

僕はCookieについては色々と試してみた結果、なんだか気持ち悪いので、
CGIの作成時にあまり使わないようにしています。なんだか、環境に左右
されることが多いのが、ストレスになっていますので。

たしかにCookieを使うと値の継承などが楽なんですけどね。

mori さんからのコメント
( Monday, February 07, 2000 15:33:06 )

機会とブラウザの組み合わせで環境変数の取扱いが異なるとなると
なるほどやっかいですね
しかし、そういうことがあると教えていただけて
なにやら安心いたしました。
たしかにストレスになりますね

ありがとうございました