電子書籍の厳選無料作品が豊富!

PerlモジュールのCGI::Sessionでセッション管理をしようとしています。
具体的なコードは
%cookie=raw_fetch CGI::Cookie;
$S_id=$cookie{'S_id'};#クッキーに保存されたセッションIDを取得
$session = new CGI::Session("driver:MySQL", "$S_id", {Handle=>$dbh});

その後
$Ses_id=$session->id();
とすると本来ならばクッキーに保存された既存のセッションID($S_id)が$Ses_idに入ると思うのですが、$Ses_idには新しいセッションIDが入ってしまいます。
そこで疑問なのですが
(1)$S_idにクッキーに保存されたセッションIDを指定すると既存のセッションをオープンするのではないのでしょうか?
(2)$Ses_id=$session->id();にはなぜ新しいセッションIDが入ってしまうのでしょうか?

2点の質問ですが、どうか宜しく教えてくださいまし。

A 回答 (1件)

(1) はい、そうだと思います


(2) ロードに失敗すると新規セッションを開始する仕様になっているようです。クッキーからSIDが正常に取れているかと、mysql上にSIDがきちんと保存されているか、調べてみて下さい。

・・・あ、正式には"driver:mysql"らしいので、それが原因となっている可能性もありますね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!