Perl Captcha не обновляется на Windows 7 - PullRequest
0 голосов
/ 02 июня 2010

Я создал капчу, которая выглядит следующим образом:

<img src="/cgi-bin/rand.pl" />

Проблема в том, что, если кто-то переходит с страницы на капчу или обратно на нее, она не обновляется, что делает капчу недействительной (особенно, если они уже отправили форму раньше). Есть ли способ заставить обновить, так как я подозреваю, что установка источника изображения с помощью javascript также не приведет к обновлению. Единственное время, когда изображение действительно обновляется, - это использование кнопки обновления в браузере. (это не проблема в IE8 / 7, Mozilla на Windows XP; я только заметил это на Windows 7)

1 Ответ

1 голос
/ 02 июня 2010

Установите заголовок Expires с текущей или прошедшей отметкой даты и времени HTTP, чтобы указать, что ресурс не должен быть кэширован.Пример использования модуля CGI:

use CGI qw();
my $cgi = CGI->new;
print $cgi->header(
    -type    => 'image/png',
    -expires => '+0s',
);

__END__
Expires: Wed, 02 Jun 2010 12:13:47 GMT
Date: Wed, 02 Jun 2010 12:13:47 GMT
Content-Type: image/png

Чтобы самостоятельно создать стандартную отметку даты и времени, используйте HTTP::Date или DateTime::Format::HTTP.

...