1
my $arr;
%cookies = CGI::Cookie->fetch;
for (keys %cookies) {
    $arr = ($cookies{$_});
}

@arr1 = split("=", $arr);
@arr2 = split(";", $arr1[1]);
$cgi_session = CGI::Session->load($arr2[0]);

print "Content-Type: text/html\n\n";

if ($cgi_session->is_expired) {
    print "session expire\n";
}
else {
    print "session valid\n";
}

セッションは 1 分後に期限切れになるように初期化されますが、期限切れかどうかを確認するときは常に別の状態になります。コードが1分後に機能しないため、セッションは実際には期限切れになりますが。ユーザーをログインページにリダイレクトする期限が切れているかどうかを確認したい。

4

1 に答える 1

0

まず、コードに Cookie が設定されていることを示すものは何もありません。それがどのように起こっているのかは明らかではありません。

次に、CGI::Session を使用する場合$cgi_session->flush()、スクリプトが終了する前に呼び出す必要があります。

3 番目に、Perl の Web フレームワークの 1 つを開始点として使用する代わりに、これらすべてを手動で解決したいですか?

于 2012-08-11T04:01:33.170 に答える