• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クッキーの基礎的なことについて)

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

このQ&Aのポイント
  • クッキーの発行方法について質問しています。クッキーを発行するには、print文でSet-Cookieヘッダーを指定する必要があります。
  • クッキーの発行方法について質問しています。print文でSet-Cookieヘッダーを指定することで、クッキーを発行することができます。
  • クッキーの発行方法についての質問です。クッキーを発行するには、print文でSet-Cookieヘッダーを指定する必要がありますが、うまくいかない場合もあります。

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

とりあえず気づいた問題は print "Content-type: text/html\n\n"; の、後にcookieの発行をしていることです。 cookieはhttpヘッダに乗せてブラウザに送信する必要がありますが print "Content-type: text/html\n\n"; この行の最後の\nでヘッダの終わりを示してしまっているのでprint Set-Cookie:・・・はヘッダの一部ではなく、内容と解釈されてしまいブラウザは表示してしまうのです。 以下のように書いたような状態になってしまっています。 print <<HTM Set-Cookie: myBool=1; expires=Mon , 08-Aug-2005 12:11:43 GMT <html> <head> ~ 対処としては print "Content-type: text/html\n"; #cookie発行 print "\n";#ヘッダの終わり #htmlのprint とするか、 print "Content-type: text/html\n"; この行をcookie発行処理の後ろにまわす必要があります。 今まではhttpヘッダ(参考URL)を意識せずにまじないのように print "Content-type: text/html\n"; を書いていたかもしれませんが、CGIを扱う以上はこれを意識したほうがベターです。 参考URLも読んでみてください。

参考URL:
http://www.rfs.jp/sitebuilder/perl/03/03.html,http://www.ne.jp/asahi/minazuki/bakera/html/opinion/perl
ggaogg
質問者

お礼

まじないのように書いてました・・。 今までは print "Content-type: text/html\n"; が <meta http-equiv="Content-type" content="text/html"> に対応しているということも知りませんでした・・。 しかも print "\n";(\nが2連続)でmeta記述を終わりHTML記述になることも知りませんでした。 Perlの入門サイトでここの説明省略してるところ多sg!! おかげさまでこれからはきちんとした考え方でPerlスクリプト組めそうです。 ありがとうございました。

関連するQ&A