Работа с cookies на Perl
Материал взят с сайта http://spgroup.km.ru/
Cookies - небольшие файлы сохраняемые на машине клиента, позволяющие хранить персональную информацию для каждого пользователя на стороне клиента. В Perl для работы с Cookies используется модуль CGI::Cookie
С помощью Cookies Вы можете сохранять на стороне клиента информацию ввиде ключ-занчение. В какой-то степени Cookies можно сравнивать с передачей параметров запроса методом POST, но передаваемые значения в случае Cookies будут храниться на компьютере пользователя, что позволяет идентифицировать любого клиента, зашедшего на Ваш сайт второй или более раз.
В основном Cookies применяются для аутентификации пользователя ресурса. Т.е. в Cookies можно хранить имя пользователя, пароль, или идентификатор сессии пользователя. Таким образом, зарегистрированный на вашем сайте пользователь может входить в свою область идентификации не вводя каждый раз пароль.
Единтефикация пользователя, конечно, не единственное применение Cookies. Уважаемый читатель может пользоваться Cookies для каких-то своих, ему ведомых целей.
Итак, как можно (и нужно) работать с Cookies на Perl?
Во-первых, для работы необходимо подключить модуль:
use CGI::Cookie; |
Этот модуль позволит Вам получить доступ для манипуляций с Cookies.
Вторым шагом может служить запись Cookies:
Сначала надо создать Cookie:
$c = new CGI::Cookie(-name => 'SOMENAME', -value => 'SOMEVALUE', -expires => '+3M', -domain => '.someserver.com', -path => '/cgi-bin' -secure => 1 ); |
Ключи -name и -value передают пользователю данные которые Вы хотите записать пользователю в формате Ключ - Значение соответственно.
Ключ -expires указывает время жизни Cookie на машине пользователя. В данном примере время жизни 3 месяца. Если время жизни устанавливается в ноль то Cookie существует только тогда, когда запущен браузер и не записывается на диск. После закрытия браузера такой Cookie аннулируется.
Ключ -domain указывает полное или частичное имя сервера, для которого Cookie имеет силу. Браузер возвратит Cookie любому хосту, который соответствует полному или частичному имени указанному в этом ключе. На-пример, если Вы укажете имя домена .somesrver.com, то Cookie будет возвращено любому поддомену этого домена, будь то www.somesrver.com или vasya.somesrver.com. Если же этот ключ не определен, то будет установлено имя хоста по умолчанию, с которого был записан Cookie.
Ключ -path служит для указания пути к скриптам которые используют этот Cookie. Если Вы указываете путь /cgi-bin, то все скрипты в этом каталоге и в его подкаталогах получат Cookie, но скрипты расположенные в других каталогах, не являющихся подкаталогами /cgi-bin этот Cookie не получат.
Если установлен ключ -secure, то Ваш Cookie будет передаваться только по протоколу SSL. По обычному HTTP протоколу он передаваться не будет.
Дальше нобходимо передать созданный Cookie браузеру пользователя:
print header(-cookie=>$c); |
%cookies = fetch CGI::Cookie; |
$SOMECOOKIE = $cookies{'SOMENAME'}->value; |