=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
From:    Prognozov.NET <webmaster@prognozov.net>
To:      chicken@dklab.ru <chicken@dklab.ru>
Date:    Tuesday, March 12, 2002, 3:27:12 PM
Subject: CGI::WebIn
Files:   <none>
-------------------------------------------------------------------------------
Здравствуйте!
У меня вопрос по модулю CGI::WebIn:

почему функция DropCookie удаляет только переменную, а сам кук
остается и читается другими скриптами до дех пор пока не истечет?
у меня во всяком случае присходит именно так.

заранее благодарен.
  

-- 
Best regards,
 Prognozov.NET                          mailto:webmaster@prognozov.net

-------------------------------------------------------------------------------


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
From:    Dmitry Koterov <koterov at cpan dot org>
To:      Prognozov.NET <webmaster@prognozov.net>
Date:    Tuesday, March 12, 2002, 3:43:32 PM
Subject: CGI::WebIn
Files:   <none>
-------------------------------------------------------------------------------
Добрый день.

12.03.2002 15:27. Вы написали:

> почему функция DropCookie удаляет только переменную, а сам кук
> остается и читается другими скриптами до дех пор пока не истечет?
> у меня во всяком случае присходит именно так.

Крайне странно. Дело в том, что DropCookie просто должен устанавливать
время истечение Cookie 3 года назад (то есть, в прошлом), что приводит
к удалению Cookie.

Неужели это не работает?.. Не могли бы Вы уточнить, а еще лучше -
привести  пример  небольшого  скрипта,  в  котором  этот  механизм  не
срабатывает?..

С уважением,
  Дмитрий Котеров (dk@dklab.ru), ведущий программист.
  Лаборатория dk, http://www.dklab.ru

-------------------------------------------------------------------------------


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
From:    Prognozov.NET <webmaster@prognozov.net>
To:      Dmitry Koterov <koterov at cpan dot org>
Date:    Tuesday, March 12, 2002, 4:14:29 PM
Subject: CGI::WebIn
Files:   <none>
-------------------------------------------------------------------------------
Hello Dmitry,

вот фрагмент:

use CGI::WebOut;
use CGI::WebIn(1);

if(!$ENV{'QUERY_STRING'}) {
        SetCookie("test","yes","+10m","/");
        
        print $test; #пишет 'yes'
}else{
        DropCookie("test");
        
        print $test; #не пишет
        
        print $ENV{'HTTP_COOKIE'}; #пишет
}

-- 
Best regards,
 Prognozov.NET                            mailto:webmaster@prognozov.net

Tuesday, March 12, 2002, 3:43:32 PM, you wrote:

DK> Добрый день.

DK> 12.03.2002 15:27. Вы написали:

>> почему функция DropCookie удаляет только переменную, а сам кук
>> остается и читается другими скриптами до дех пор пока не истечет?
>> у меня во всяком случае присходит именно так.

DK> Крайне странно. Дело в том, что DropCookie просто должен устанавливать
DK> время истечение Cookie 3 года назад (то есть, в прошлом), что приводит
DK> к удалению Cookie.

DK> Неужели это не работает?.. Не могли бы Вы уточнить, а еще лучше -
DK> привести  пример  небольшого  скрипта,  в  котором  этот  механизм  не
DK> срабатывает?..

DK> С уважением,
DK>   Дмитрий Котеров (dk@dklab.ru), ведущий программист.
DK>   Лаборатория dk, http://www.dklab.ru

-------------------------------------------------------------------------------


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
From:    Dmitry Koterov <koterov at cpan dot org>
To:      Prognozov.NET <webmaster@prognozov.net>
Date:    Tuesday, March 12, 2002, 7:43:23 PM
Subject: CGI::WebIn
Files:   <none>
-------------------------------------------------------------------------------
Добрый день.

12.03.2002 16:14. Вы написали:

>         print $test; #не пишет
>         print $ENV{'HTTP_COOKIE'}; #пишет

Да,  действительно,  имела  место  ошибка.  Оказывается, можно удалить
Cookie  только в том случае, если при удалении указать те же параметры
$path и $domain, что и при установке. Спасибо за Ваше письмо.

Я  закачал  на  сервер  новую версию CGI::WebIn (1.01) с исправлениями
ошибок.  Кроме  того, имейте в виду, что работать с DropCookie() нужно
теперь вот так:

#!/usr/bin/perl -w
use CGI::WebOut;
use CGI::WebIn(1);

if(!$ENV{'QUERY_STRING'}) {
  SetCookie("test1","yes","+10m","/");
  print $test1; #пишет 'yes'
} else {
  DropCookie("test1","/"); # не забудьте про "/"!!!
  print $test1; #не пишет
  print $ENV{'HTTP_COOKIE'}; # пишет
  # dk:  в  первый  раз  -  да, пишет, потому что CGI::WebIn
  # не  трогает  пришедшие  переменные  окружения.  Зато  при
  # следующем запуске Cookie уже будет удален.
}

Можно  также  и  опускать параметр $path и там, и там, но тогда Cookie
будет  действовать  только  в  текущей  директории.  Это соответствует
стандарту, описанному в
http://www.citforum.ru/win/internet/html/cookie.shtml

С уважением,
  Дмитрий Котеров (dk@dklab.ru), ведущий программист.
  Лаборатория dk, http://www.dklab.ru

-------------------------------------------------------------------------------

