• 締切済み

セッションがうまくできません

#!c:/Perl/bin/Perl.exe ------セッションを作成する------- use CGI::Session; $session = new CGI::Session(undef,undef,{Directory=>'/tmp'}); $session->expire('+50s'); $session->param("membername","テスト"); $session->flush(); print "Location: ./test.pl\n\n"; ------セッションを読み込む------- #!c:/Perl/bin/Perl.exe print"Content-type: text/html\n\n"; use CGI; use CGI::Session; $q = new CGI(); $session = CGI::Session->new(undef,$q,{Directory=>'/tmp'}); $params = $session->param_hashref(); print$params->{"message"}; $session->flush(); 何もブラウザに表示がされません、どこが間違ってるのでしょうか?

みんなの回答

  • g_p_
  • ベストアンサー率53% (28/52)
回答No.2

もしかして、 上では >$session->param("membername","テスト"); こうしてるのに、 下では >print$params->{"message"}; こうしてるから ってそれだけの問題じゃないですよね? 後から気付いた#1でした。

JIF0131
質問者

補足

>上では >>$session->param("membername","テスト"); >こうしてるのに、 >下では >>print$params->{"message"}; >こうしてるから こちらは教えてgooに投票するときに間違えただけです(汗) でも自己解決しました。理由はヘッダ情報の出力を追加したら大丈夫でした print $session->header(-charset => "shift-jis"); これで正常に動きました。ご迷惑おかけしました。

  • g_p_
  • ベストアンサー率53% (28/52)
回答No.1

こんにちは、 下の方のスクリプトで CGI::Session オブジェクトを生成する際に、 CGI オブジェクトを渡していますが、その CGI オブジェクトは param か cookie にセッションIDを持っているんでしょうか? もし、上のスクリプトが下のスクリプトへリダイレクトしているのなら、 セッションIDをどうやって渡しているのでしょうか? ”HTTPはステートレスなプロトコル”だと言う事をお忘れでは?

関連するQ&A