задача в следующем: (авторизация по средствам куки)
на странице админа - форма, отправляет скрипту для проверки логин и пароль, скрипт проверяет, если все верно отправляет куку браузеру и перенаправляет клиента в админскую часть для редактирования сайта.
Так вот вопрос:
вот такой фрагмент кода не работает, скорей всего потому что нельзя браузеру отправлять 2 запроса:
______________________________________________________
#тут определяется определяется кука
#...
print $query->header(-cookie=>$cookie); #отправляется браузеру
print $query->redirect('../cgi-bin/news.cgi?add=0'); #перенаправляет
______________________________________________________
как это обойти?
Perl и Cookies, требуется помощь!
с уважением vlanis
Вот фрагмент скрипта, который работает:
#если $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;
}
#если $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;
}
[qoute]print $query->header(-cookie=>$cookie); #отправляется браузеру
print $query->redirect('../cgi-bin/news.cgi?add=0'); #перенаправляет
______________________________________________________
как это обойти?
[/qoute]
Действительно получается, что ты посылаешь как бы 2 заголовка. Можно попробовать выводить принтом, а конце код переназначенияЮ либо, каак уже сделано во многих местах - вывести страничку с надписью "Инфа запомнена, сейчас перегружусь!".
print $query->redirect('../cgi-bin/news.cgi?add=0'); #перенаправляет
______________________________________________________
как это обойти?
[/qoute]
Действительно получается, что ты посылаешь как бы 2 заголовка. Можно попробовать выводить принтом, а конце код переназначенияЮ либо, каак уже сделано во многих местах - вывести страничку с надписью "Инфа запомнена, сейчас перегружусь!".
Реклама запрещена. См. Профиль :-)
[qoute]print $query->header(-cookie=>$cookie); #отправляется браузеру
print $query->redirect('../cgi-bin/news.cgi?add=0'); #перенаправляет
______________________________________________________
как это обойти?
[/qoute]
Действительно получается, что ты посылаешь как бы 2 заголовка. Можно попробовать выводить принтом, а конце код переназначенияЮ либо, каак уже сделано во многих местах - вывести страничку с надписью "Инфа запомнена, сейчас перегружусь!".
print $query->redirect('../cgi-bin/news.cgi?add=0'); #перенаправляет
______________________________________________________
как это обойти?
[/qoute]
Действительно получается, что ты посылаешь как бы 2 заголовка. Можно попробовать выводить принтом, а конце код переназначенияЮ либо, каак уже сделано во многих местах - вывести страничку с надписью "Инфа запомнена, сейчас перегружусь!".
Реклама запрещена. См. Профиль :-)
Что логичнее :-)
print header(
-content_type=>"text/html",
-refresh=>"10; URL=/faq.shtml",
-charset=>'windows-1251',
-cookie=>[@cookies]
);
print header(
-content_type=>"text/html",
-refresh=>"10; URL=/faq.shtml",
-charset=>'windows-1251',
-cookie=>[@cookies]
);