Forum Webscript.Ru
Программирование => Perl => Тема начата: Yuraz от 06 Мая 2002, 09:04:42
-
Подскажите, как удалить полностью свои куки, по одиночке и группу удаляю так, а как полностью, без переборки?
%zoo = cookie(\'animals\');
@new = param(\'new_animals\');
foreach (@new) {
if (param(\'action\') eq \'Add\') { #добавляем 1
$zoo{$_}++;
} elsif (param(\'action\') eq \'Delete\') { #удаляем 1
$zoo{$_}-- if $zoo{$_};
delete $zoo{$_} unless $zoo{$_}; #удаляем весь пункт
} elsif (param(\'action\') eq \'Delete_all\') {
delete $zoo{$_} ;
}
}
-
Все сразу, не читая их имен? ИМХО, никак!
-
А как тогда самый короткий способ удалить
cookie(\'animals\');?
Эти данные стали не нужны и их надо стереть. Стирать в цикле... как то не хочеться...
-
Стирать в цикле... как то не хочеться...
Почему? Боюсь, ничего лучше тебе не предложат.
На всякий случай:
Удаляются cookie также как и устанавлявваются, только expiries указывается "устаревший". Вот общий формат заголовка, который нужно отправить:
Set-Cookie: NAME=value; [EXPIRES=date; PATH=path; DOMAIN=domain; SECURE]
Описаний и примеров в сети полно.
-
Цикл, так цикл, тогда всё ясно, просто хотел упростить код.
-
Всех приветствую! Снова проблема с куками, помогите советом, есть shtml страница, от куда я вызываю перл скрипт, который и пишет в страницу данные, в зависимости от того, есть у человека cookie или их нет, т.е. сейчас наглядно распишу, примерно вот такая страница:
где идёт вызов этого скрипта. Он вставляется нормально, сам скрипт такой, это только что касается cookie:
use CGI qw(:standard);
#новое имя приходит из формы
$newlogin=$FORM{\'login\'};
#а это старое, если есть куки
$login = cookie(\'login\');
#2 шага формы, установка куки
if($step eq "login"){
$login=$newlogin;
}
#2 шага формы, убираем куки
elsif($step eq "logout"){
$login=\'\';}
#
$the_cookie1 = cookie(-name=>\'login\',
-value=>$login,
-expires=>\'+1M\');
print header(-cookie=>$the_cookie1);
if ($FORM{\'ps\'}){
print "";
print "";
print "";
exit;
}
if ($login){print "Привет $login!!!!!!!!!!!";}
else {print "Зарегистрируйтесь";}
ВОт и все, в форме ещё есть скрытое поле PS, и если приходит это поле(после регистрации или logout), я пользователя "отфутболирую" на начальную страницу сайта. Где уже есть куки, и пользователь видит нормальную страницу, т.к. он зарегистрирован.
САМОЕ главное! У меня на компе всё работает отлично, т.е. куки ставлю через страницу-вызов-скрипта-из-неё, далее делаю этот релоад с помощью метатега, и уже вхожу на нормальную страницу.
А на удалённом сервере такое не проходит, т.е. якобы скрипт не может узнать есть ли cookie или нет, и всегда грузит "регистрацию". Хотя cookie ставит.
Вопрос, как можно решить эту проблему, прочитать cookie из скрипта, которого вызывает страница. (Повторю, дома на локалхосте работает)
пример, который и не пашет здесь, сразу на первой странице:
http://www.allcars.biz
а это сам скрипт, который без страницы "пашет"
http://www.allcars.biz/cgi-bin/main.pl
Выход конечно есть, все страницы вгонять в скрипты, так будет работать без проблем, но помоему(если не ошибаюсь) на этом сайте как то так же реализованно, страница обычная, а как то распознает куки. Через яву реализовать? Почему тогда дома работает?