Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > как программно перейти по ссылке?


Автор: kb-nn 22.4.2005, 14:19
подскажите, пожалуйста.

как можно программно перейти по какому- то адресу?
наподобие header(location.....) в PHP?

Автор: Secandr 22.4.2005, 14:34
kb-nn нужно отправить заголовок location:<url>
делается это при помощи простого print

Автор: korob2001 22.4.2005, 14:35
Без использования сторонних модулей:
Код

print "Location: http://yandex.ru\n\n";

С использованием CGI.pm
Код

#!/usr/bin/perl -w
use strict;
use CGI;
my $cgi = new CGI;
print $cgi->redirect( -uri => 'http://yandex.ru' );



Автор: Guest 16.11.2005, 13:17
[move]print неработает!!!!!!!!!!!!!!!

Автор: korob2001 16.11.2005, 13:24
Работает
Код

print "Location: http://yandex.ru\n\n"; 

В конце нужно обязательно 2 раза указать перевод строки \n\n, что по сути и означает конец заголовка.

Автор: sharq 16.11.2005, 16:57
Цитата(korob2001 @ 16.11.2005, 14:24)
В конце нужно обязательно 2 раза указать перевод строки \n\n, что по сути и означает конец заголовка.

Причем
Код

print "Location: http://yandex.ru\n\n"; 

нужно писать до всяких там заголовков!
иначе "не сработает". smile

Код

print "Content-type: text/html\n\n";
... 
print "Location: http://yandex.ru\n\n"; 


Это не правильно!

smile

Автор: korob2001 16.11.2005, 17:28
sharq - так это и есть заголовок. Если нужен указать Content, то попробуй сделать это так.
Код

print "Content-type: text/html\n"; # Обрати внимание на кол-во переводов строки
print "Location: http://yandex.ru\n\n"; # Здесь тоже

Вобщем, весь заголовок разделяется \n, а заканчивается \n\n

Автор: sharq 17.11.2005, 11:51
korob2001 спасибо тебе большое smile Я-то знаю и понимаю это.

Написал, т.к. это распространенная ошибка.

smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)