Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не могу передать cookies от CGI 
V
    Опции темы
gcc
Дата 15.7.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



не передаються cookies

передавал методом html

сейчас желательно передать модулем cgi чтобы не засорять вывод шаблонов  smile 
(редиректо тоже не работал)

Код

$query = CGI->new();

print $query->header( -charset => "utf8", -cookie=>$cookie );

#дальше сессия самописная

 $cookie = $query->cookie( -session => $session,
                             -expires => '+15m' );


сессии нету
Код

my %cookies = fetch CGI::Cookie;
print $cookies{'session'};


если передать через html, то сессии с авторизациеи и аутентификациеи работает...


подскжаите в чем проблема пожалуйста?


Это сообщение отредактировал(а) gcc - 15.7.2008, 13:10
PM WWW ICQ Skype GTalk Jabber   Вверх
Itsys
Дата 15.7.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 2
Всего: 34



Дык порядок то должен быть другой  smile 
Код

$query = CGI->new();

#дальше сессия самописная

 $cookie = $query->cookie( -session => $session,
                             -expires => '+15m' );

print $query->header( -charset => "utf8", -cookie=>$cookie );

PM MAIL WWW Skype   Вверх
gcc
Дата 15.7.2008, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



 smile 

Это сообщение отредактировал(а) gcc - 15.7.2008, 18:12
PM WWW ICQ Skype GTalk Jabber   Вверх
gcc
Дата 15.7.2008, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Код

my %cookies = fetch CGI::Cookie;

if (!($cookies{'session'})) {
exit;
}


выходит, перестает работать...

они все таки не передаються, я испробывал все что мог и раньше и не захотели работать, все получалось кроме этого, почему они не передаються? должны или что не так?  что еще написать я не знаю?




Это сообщение отредактировал(а) gcc - 15.7.2008, 18:41
PM WWW ICQ Skype GTalk Jabber   Вверх
tolkien
Дата 15.7.2008, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 5.4.2008

Репутация: 4
Всего: 4



Отдохните. Дайте своему подсознанию решить эту задачу. Завтра проснетесь и сразу разберетесь в чем дело.
PM MAIL   Вверх
gcc
Дата 15.7.2008, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



 smile  smile  smile 

эту задачу я уже пол года решить не могу

Это сообщение отредактировал(а) gcc - 15.7.2008, 18:47
PM WWW ICQ Skype GTalk Jabber   Вверх
KSURi
Дата 15.7.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Цитата(gcc @  15.7.2008,  13:08 Найти цитируемый пост)
Код

$cookie = $query->cookie( -session => $session,-expires => '+15m' );

А если попробовать
Код

$cookie = $query->cookie(-name => 'session',-value=>$session,-expires=>'+15m')

?


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
gcc
Дата 16.7.2008, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



спасибо, я плохо смотрел!

в первом посте я еще писал что редирект не могу сделать...

в поиске тут нашел:
Код

#!/usr/bin/perl -w
use strict;
use CGI;

my $cgi = new CGI;

# Подготавливаем куки
my $cookie = $cgi->cookie( -name => "name",
                           -value => "Вася Пупкин",
                           -expires => "+1y" );

# Записываем юзеру куки и перенаправляем его на http://yandex.ru
print $cgi->redirect( -cookie => $cookie,
                      -uri => "http://yandex.ru" );

exit 0;



в документации:
Код

    print redirect(-uri=>'http://somewhere.else/in/movie/land',
                           -nph=>1,
                           -status=>301);


Код

   print redirect('http://somewhere.else/in/movie/land');



пробую так, и еще 100 раз - не работает

Код

my $referer = "http://org/index.pl"; 
print redirect( -uri => $referer,
                                          -nph=>1,
                           -status=>301 );


Код

print $query->redirect( -uri => $referer,
                                          -nph=>1,
                           -status=>301 );


ответ такой:
Код

 Status: 302 Moved Location: http://org/index.pl

в чем данная загадка?

Это сообщение отредактировал(а) gcc - 16.7.2008, 23:38
PM WWW ICQ Skype GTalk Jabber   Вверх
nitr
Дата 17.7.2008, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Цитата
The -nph parameter, if set to a true value, will issue the correct headers to work with a NPH (no-parse-header) script. This is important to use with certain servers, such as Microsoft IIS, which expect all their scripts to be NPH.


Код
print $query->redirect( -uri => $referer,
                        -status => 301 );


Это сообщение отредактировал(а) nitr - 17.7.2008, 00:49


--------------------
PM   Вверх
gcc
Дата 17.7.2008, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Код

Status: 301 Location: http://org/index.pl


тоже самое, ссылка у редиректа идет на мой скрипт, в общем я загуржу просто функцию главной страницы...  smile  

мне пока не надо - вопрос решил, если получиться напишу

(просто лучше узнать реферер, и отредиректить на реферер)

брайзер firefox 2



Это сообщение отредактировал(а) gcc - 17.7.2008, 01:18
PM WWW ICQ Skype GTalk Jabber   Вверх
nitr
Дата 17.7.2008, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



gcc, это выдаётся в сам браузер? Если да, обновите до 3 ;)

А вообще, похоже что-то с index.pl (имхо).

Проверьте так:

1) создайте в DocumentRoot => index.html
Код
<html>
<head>
  <title>Test</title>
</head>
<body>
  <a href="/cgi-bin/test.cgi" title="Test">Test</a>
</body>
</html>

2) создайте в ./cgi-bin/ => test.cgi
Код
#!perl
use strict;
use CGI;

my $cgi = new CGI;

my $referer = "http://org/index.html";
print $cgi->redirect( -uri => $referer,
                      -status=>301);



--------------------
PM   Вверх
gcc
Дата 17.7.2008, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



ошибка 500, там заголовок надо передать браузеру, у меня перл не модулем работает

мне пока не надо - вопрос решил загрузкой главной страницы, если получиться напишу

ЗЫ я давно не ставил + в репутацию, после перла сил не хватает, надо будет ставить всем smile 

Это сообщение отредактировал(а) gcc - 17.7.2008, 01:48
PM WWW ICQ Skype GTalk Jabber   Вверх
gcc
Дата 17.7.2008, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Код

Status: 301 Location: /index.html


попробовал в opere - тоже самое...

там все таки надо сделать редирект, по той причине что функция проверки сессии и cookie идет из самого начала, а чтобы перекинуть пользователя в режим гостя или пользователя, то нужно все с начала выбирать иначе получиться 2 режима  smile 


а то кто делал, подскажите пожалуйста про редирект...

Это сообщение отредактировал(а) gcc - 17.7.2008, 06:45
PM WWW ICQ Skype GTalk Jabber   Вверх
nitr
Дата 17.7.2008, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



gcc, я вам привёл примеры, которые работают. Я специально проверил на трёх различных машинах, с разными ОС.
WinXP (Apache2), FreeBSD (Apache2), fedora (Apache).

gcc, раз вы протестировали моим способом, и не работает
1) Проверьте данное на хостинге, сервере (т.к. вероятность, что там криво настроен веб-сервер минимальна)
2) Сайты с редиректом работают (в Интернете)?

Считаю, что вы зря мучаетесь и не там копаете. В скриптах нет ошибок. Или приводите полный код...

P.S.: пол года это большой срок.

Добавлено через 4 минуты и 54 секунды
Вы mod_rewrite не используете? smile


--------------------
PM   Вверх
gcc
Дата 17.7.2008, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



ну я где-то пол года назад поробовал много раз не получалось - решил через html


ваш код выдает error 500, потому что нету заголовка я заголовки так передал, правильно?

Код

#!/usr/local/bin/perl
use strict;
use CGI;

my $cgi = new CGI;



print $cgi->header( -charset => "utf8" );

my $referer = 'http://.ua/1/index.html';

print $cgi->redirect( -uri => $referer,
                      -status=>301);


это и есть полный код
perl 5.0.8

а у вам perl модeлем работает?

Это сообщение отредактировал(а) gcc - 17.7.2008, 11:01
PM WWW ICQ Skype GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1304 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.