Страница 2 из 2

еще одна трудность

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

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

как это обойти?

Добавлено: 20 фев 2004, 00:22
Vasilisk
Вот фрагмент скрипта, который работает:

#если $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;
}

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

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

Действительно получается, что ты посылаешь как бы 2 заголовка. Можно попробовать выводить принтом, а конце код переназначенияЮ либо, каак уже сделано во многих местах - вывести страничку с надписью "Инфа запомнена, сейчас перегружусь!".

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

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

Действительно получается, что ты посылаешь как бы 2 заголовка. Можно попробовать выводить принтом, а конце код переназначенияЮ либо, каак уже сделано во многих местах - вывести страничку с надписью "Инфа запомнена, сейчас перегружусь!".

Добавлено: 29 мар 2004, 11:12
UUU
Что логичнее :-)
print header(
-content_type=>"text/html",
-refresh=>"10; URL=/faq.shtml",
-charset=>'windows-1251',
-cookie=>[@cookies]
);