• 締切済み

PerlモジュールのCGI::Sessionでセッション管理

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点の質問ですが、どうか宜しく教えてくださいまし。

みんなの回答

回答No.1

(1) はい、そうだと思います (2) ロードに失敗すると新規セッションを開始する仕様になっているようです。クッキーからSIDが正常に取れているかと、mysql上にSIDがきちんと保存されているか、調べてみて下さい。 ・・・あ、正式には"driver:mysql"らしいので、それが原因となっている可能性もありますね。

すると、全ての回答が全文表示されます。

関連するQ&A