Perl и Cookies, требуется помощь!

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

vlanis
Сообщения: 11
Зарегистрирован: 19 фев 2004, 09:52
Контактная информация:

задача в следующем: (авторизация по средствам куки)
на странице админа - форма, отправляет скрипту для проверки логин и пароль, скрипт проверяет, если все верно отправляет куку браузеру и перенаправляет клиента в админскую часть для редактирования сайта.
Так вот вопрос:
вот такой фрагмент кода не работает, скорей всего потому что нельзя браузеру отправлять 2 запроса:
______________________________________________________
#тут определяется определяется кука
#...

print $query->header(-cookie=>$cookie); #отправляется браузеру
print $query->redirect('../cgi-bin/news.cgi?add=0'); #перенаправляет
______________________________________________________

как это обойти?
с уважением vlanis
Vasilisk
Сообщения: 116
Зарегистрирован: 13 фев 2004, 18:43

Вот фрагмент скрипта, который работает:

#если $user пуст, то это - попытка обращения без авторизации.
if($user){
#попытаться авторизовать клиента
my %h = BeginSession($user,$passwd,$ENV{'REMOTE_ADDR'});
if(%h){
#авторизация прошла успешно
my $sesid;
print "Set-Cookie: PHPSESSID=$h{'id'}; path=/\n";

#сюда можно включить и другие заголовки

print "Status: 200 OK\n\n";

#сюда можно включить и что-то содержательное в странице ответа

exit;
}
UUU
Сообщения: 310
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

[qoute]print $query->header(-cookie=>$cookie); #отправляется браузеру
print $query->redirect('../cgi-bin/news.cgi?add=0'); #перенаправляет
______________________________________________________

как это обойти?
[/qoute]

Действительно получается, что ты посылаешь как бы 2 заголовка. Можно попробовать выводить принтом, а конце код переназначенияЮ либо, каак уже сделано во многих местах - вывести страничку с надписью "Инфа запомнена, сейчас перегружусь!".
Реклама запрещена. См. Профиль :-)
UUU
Сообщения: 310
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

[qoute]print $query->header(-cookie=>$cookie); #отправляется браузеру
print $query->redirect('../cgi-bin/news.cgi?add=0'); #перенаправляет
______________________________________________________

как это обойти?
[/qoute]

Действительно получается, что ты посылаешь как бы 2 заголовка. Можно попробовать выводить принтом, а конце код переназначенияЮ либо, каак уже сделано во многих местах - вывести страничку с надписью "Инфа запомнена, сейчас перегружусь!".
Реклама запрещена. См. Профиль :-)
UUU
Сообщения: 310
Зарегистрирован: 17 фев 2004, 09:27
Откуда: Иваново
Контактная информация:

Что логичнее :-)
print header(
-content_type=>"text/html",
-refresh=>"10; URL=/faq.shtml",
-charset=>'windows-1251',
-cookie=>[@cookies]
);
Ответить