Web アプリケーションで Perl CGI と Apache::Session を使用しています。
次のようにtieを使用してApache::Sessionを設定する場合:
tie %session, 'Apache::Session::MySQL', $id, {
DataSource => 'dbi:mysql:apache_session',
UserName => 'root',
Password => '',
LockDataSource => 'dbi:mysql:apache_session',
LockUserName => 'root',
LockPassword => ''
};
$id がデータベース内の有効なセッションでない場合に発生するエラーをキャッチするにはどうすればよいですか? アプリケーションが 500 http エラーで停止するのではなく、新しいセッション ID を作成する必要があります。
この状況は、データベースから削除されたセッション ID を持つ古い Cookie をユーザーが持っている場合に発生します。