| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Проблема с получением cookie
Сделал на сайте такую схему:
посетитель регистрируется, ему устанавливаются куки, после этого он может воспользоваться разделом. Тут все нормально, но если войти в этот раздел без регистрации (т.е. если куки не установлены) скрипт должен выдать "незарегистрирован", но браузер рисует пустую страницу. Код такой: if($ENV{'HTTP_COOKIE'}){ %cookies = fetch CGI::Cookie; $str = $cookies{'name'}->value; } else {$str="guest";} Подскажите, в чем ошибка? |
|
|
# 2 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Я думаю что проблема в том что $ENV{'HTTP_COOKIE'} почти всегда выдает true, даже если конкретно $cookies{'name'}->value ничего и не содержит... попробуй, определять по конкретной переменной, ну например так (или что-то вроде):
Код:
%cookies = fetch CGI::Cookie;
$str = $cookies{'name'}->value;
if($str){
}
else {$str="guest";}
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 3 | |
|
Guest
Сообщения: n/a
|
Цитата:
|
|
|
|
# 4 | ||
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
||
|
|
|
|
# 5 |
|
Guest
Сообщения: n/a
|
Если бы я знал где ошибка я бы на форум не обратился
Код:
%cookies = fetch CGI::Cookie;
$str = $cookies{'name'}->value;
if($str){
}
else {$str="guest";};
Я подумал сделать проверку на существование переменной Код:
if($ENV{'HTTP_COOKIE'})
{
...
}
|
|
|
# 6 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Вот работающий код, надеюсь все понятно
Если нет, спрашивай.Код:
#!/usr/bin/perl
use CGI qw(:all);
if (defined cookie('name')) {
print header;
$str=cookie('name');
}
else {
$test_cookie=cookie(-name => 'name',
-value => 'My Name',
-expires => '+2m' );
print header(-cookie => $test_cookie);
$str="Guest";
}
print $str;
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 7 | |
|
Guest
Сообщения: n/a
|
Спасибо, теперь работает.
Только все равно непонятно, почему прежний код Код:
use CGI::Cookie;
if($ENV{'HTTP_COOKIE'}){
%cookies = fetch CGI::Cookie;
$str = $cookies{'name'}->value;
}
else {$str="guest";}
![]() Цитата:
Код:
$str=$ENV{'HTTP_COOKIE'};
if($str ne ""){
%cookies = fetch CGI::Cookie;
$str = $cookies{'name'}->value;
}
else {$str="guest";}
|
|
|
|
# 8 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Незнаю, я вообще не любитель так мучаться, просто ты спросил я помог...
Я пишу на ПХП обычно чтобы какраз не думать о таких геморроях.... (никого не хочу обидеть, и не надо плиз здесь со мной спорить натему "PHP vs PERL"...)
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|