Forum Webscript.Ru

Программирование => Perl => Тема начата: D.O. от 08 Декабря 2004, 02:55:18

Название: как правильно сделать redirect?
Отправлено: D.O. от 08 Декабря 2004, 02:55:18
Как правильно сделать redirect?
Я делал так:

use CGI qw(:standard);
use CGI::Carp qw (fatalsToBrowser);
#...
my $query = new CGI;
#...
$query->redirect("main_page.pl");

До этого вызова пользователю не выдавалось ничего.
Такой способ не срабатывает.
Почему так получается и как сделать правильно?
Название: как правильно сделать redirect?
Отправлено: Mog. от 08 Декабря 2004, 08:15:01
изучаем perldoc

  print $query->redirect(\'http://somewhere.else/in/movie/land\');
Название: как правильно сделать redirect?
Отправлено: commander от 08 Декабря 2004, 11:35:50
на худой конец:
print "Location: http://www.blah.org/\\n\\n";
Название: как правильно сделать redirect?
Отправлено: D.O. от 08 Декабря 2004, 15:56:57
Теперь понятно: можно использовать только полне абсолютные URL.
А как быть, если мне нужно передать URL на одну из страниц моего сайта, но нет желания вписывать название домена или "localhost"? Например, чтобы я мог без изменений тестировать скрипт на локальном компьютере и потом выкладывать на сайт.
Название: как правильно сделать redirect?
Отправлено: commander от 08 Декабря 2004, 16:06:03
D.O.
Цитировать
Теперь понятно: можно использовать только полне абсолютные URL.

это не так! относительные пути тоже можно использовать... только надо это делать грамотно!
Название: как правильно сделать redirect?
Отправлено: D.O. от 08 Декабря 2004, 17:42:58
Цитировать
commander:
относительные пути тоже можно использовать... только надо это делать грамотно!


А как это делать?
В доке я не нашёл информации.
Название: как правильно сделать redirect?
Отправлено: NeoNox от 08 Декабря 2004, 17:44:26
$query->redirect("/main_page.pl");
Название: как правильно сделать redirect?
Отправлено: D.O. от 13 Декабря 2004, 20:50:16
Цитировать
NeoNox:
$query->redirect("/main_page.pl");


В результате просто выводит страницу с пустым телом.
Название: как правильно сделать redirect?
Отправлено: NeoNox от 13 Декабря 2004, 21:23:34
Мда... Кто выводит страницу?
Что в логах?
Что нужно получить?
Название: как правильно сделать redirect?
Отправлено: D.O. от 14 Декабря 2004, 03:15:08
Проблема решена.
Это было из-за того, что я печатал
print "Content-Type: text/html; charset=windows-1251\\n\\n";
перед
print("Location: http://" . $ENV{"SERVER_NAME"} . "/cgi-bin/my_script.pl\\n\\n");