Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Slava Kostin                         2:452/32.10    18 Dec 2002  06:21:51
 To : All
 Subject : запись Cookie и сразу redirect
 -------------------------------------------------------------------------------- 
 
 
 Столкнулся с проблемой.
 Пишу в cookie параметры, после чего делаю редирект на самого себя. В результате 
 при старте скрипта читаю из cookie _старые_ параметры, а не измененные. Если же 
 редирект не делать, а нормально вывести заголовок и тело HTML (другая ветка
 скрипта), все нормально сохраняется. Помогите советом, пожалуйста. Hикак не могу
 найти описание подобной проблемы или хотя бы намек на такие особенности при
 работе с cookie.
 
 use strict;
 use CGI qw/:standard *table/;
 use CGI::Carp qw (fatalsToBrowser);
 
 use constant SELF_URL => 'http://myserver/cgi-bin/myscript.cgi';
 
 # Вспоминаем настройки пользователя
 my(%user_params) = cookie('user_params');
 # Тут меняем настройки - значения (values) хэша
 # Теперь пишем измененные настройки обратно в cookie
 my($cookie) = cookie(-name=>'user_params',
                        -value=>\%user_params,
                        -expires=>'+1y');
 # Вот тут хэш %user_params содержит верные значения
 ############# _ВЕТКА С РЕДИРЕКТОМ_ ###################
 # Дальше надо редиректить на самого себя без GET и POST параметров
 print(redirect(-uri=>SELF_URL));
 exit 0;
 # При следующем запуске скрипта я прочту старые параметры :(
 ############# _ВЕТКА БЕЗ РЕДИРЕКТА_ ###################
 print(header(-charset=>'windows-1251',
              -cookie=>$cookie),
       start_html(-title=>'Мой скриптик',
                  -author=>'lamer@tut.by',
                  -style=>{'src'=>'/css/styles.css'},
                  -lang=>'ru-RU'));
 # Тут вывожу тело HTML-документа
 print(end_html);
 # При следующем запуске скрипта я прочту измененные параметры
 
 Спасибо.
 
 Best regards,
 Slava.                              E-Mail: lamer@tut.by, ICQ: 108839968
 --- GoldED+ 1.1.5-021109 (WinNT 4.0.1381-Service_Pack_6 i586)
  * Origin: в здоровом теле - здоровый пук. (2:452/32.10)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 запись Cookie и сразу redirect   Slava Kostin   18 Dec 2002 06:21:51 
 Re: запись Cookie и сразу redirect   Artem Chuprina   18 Dec 2002 16:20:36 
Архивное /ru.cgi.perl/27013dffee91.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional