私は Perl の初心者で、この問題に悩まされています。
ログインを管理し、資格情報が正しい場合に index.cgi ページにリダイレクトする _login.cgi スクリプトがあります。
if (functions::check_credentials($input{"username"}, $input{"password"}) eq true ){
$session = new CGI::Session("driver:File", undef, {File::Spec->tmpdir});
$session->param("name", "Carcarlo Pravettoni");
$cookie = $page->cookie(CGISESSID => $session->id);
print $page->redirect( -URL => "index.cgi" -cookie=>$cookie);
} else {...}
しかし、正しい資格情報で試してみると、_login.cgi (このスクリプト自体) への無限のリダイレクト ループが発生します。
代わりに、リダイレクトで Cookie を送信しない場合、すべてが機能します。
if (functions::check_credentials($input{"username"}, $input{"password"}) eq true ){
$session = new CGI::Session("driver:File", undef, {File::Spec->tmpdir});
$session->param("name", "Carcarlo Pravettoni");
$cookie = $page->cookie(CGISESSID => $session->id);
print $page->redirect( -URL => "index.cgi");
} else {...}