Автор Тема: Вызов perl скрипта из другого perl скрипта  (Прочитано 4127 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DSA

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Здравствуйте многоуважаемый All!

Не подскажите ли как можно реализовать сабж. То есть, например, у меня такая ситуация:
При выполнении какого-то условия мне нужно отправить пользователя к другому скрипту.
Я пробовал пользоваться методом CGI->redirect("test.pl",1) (тоесть перенаправление на скрипт test.pl через 1 секунду), но он ведет себя мягко говоря по странному, иногда запуская нужный скрипт,а иногда выдавая такой результат:

Status: 302 Moved Window-Target: 1 location: test.pl

Подскажите, пожалуйста, как это можно реализовать.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Вызов perl скрипта из другого perl скрипта
« Ответ #1 : 16 Июля 2005, 02:50:24 »
Цитировать
DSA:
Я пробовал пользоваться методом CGI->redirect("test.pl",1) (тоесть перенаправление на скрипт test.pl через 1 секунду), но он ведет себя мягко говоря по странному, иногда запуская нужный скрипт,а иногда выдавая такой результат:

Status: 302 Moved Window-Target: 1 location: test.pl

1. печатает такое, то значит уже ранее были заголовки напечатаны, что неправильно
2. CGI->redirect("test.pl",1) насчет "перенаправления через 1 сек", вас кто-то обманул :)  Возможно вам проще сделать страницу-шаблон редиректа, куда будет вставляться урл редиректа и время (это там время указывается), если же хотите через HTTP заголовки, то используйте ее правильно
Цитировать

   print $query->redirect(\'http://somewhere.else/in/movie/land\');

Sometimes you don\'t want to produce a document yourself, but simply redirect the browser elsewhere, perhaps choosing a URL based on the time of day or the identity of the user.

The redirect() function redirects the browser to a different URL. If you use redirection like this, you should not print out a header as well.

You should always use full URLs (including the http: or ftp: part) in redirection requests. Relative URLs will not work correctly.

- т.е. указываем полный урл (c http://)
- не выдаем HTTP заголовки до вызова редиректа (они отправляются при:
 print $query->redirect(\'http://somewhere.else/in/movie/land\');
 в исканиях.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Вызов perl скрипта из другого perl скрипта
« Ответ #2 : 16 Июля 2005, 02:54:02 »
Цитировать
DSA:
Вызов perl скрипта из другого perl скрипта

и редирект - это не вызов скрипта из другого скрипта, это перенаправление с одного скрипта на другой. Если же вам нужно из скрипта1 вызвать другой скрипт2, чтоб он что-то сделал и результат отдал скрипту1 ,то это все делается иначе (помнится на форуме это подробно и не раз обсуждалось)
 в исканиях.

Оффлайн DSA

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Вызов perl скрипта из другого perl скрипта
« Ответ #3 : 16 Июля 2005, 06:30:56 »
В очередной раз спасибо Вам за великолепный ответ, Зеленый Какаду :-)
Не подскажите где на форуме кнопочка добавления рейтинга?:)
Я ее почему-то не наблюдаю, хотя так хочется хоть и такой мелочью, но все же хоть как-то вас отблагодарить :-)

Насчет метода redirect() - мне кажеться весьма неудобная функция, т.к. невозможно использовать ее и в то же время послать пользователю кукис, поэтому я решил эту проблему таким способом:

print header(-cookie=>$cookie,-Refresh => "1; URL = test.pl");

Что практически индентично, но зато более функционально. :)

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Вызов perl скрипта из другого perl скрипта
« Ответ #4 : 16 Июля 2005, 12:59:43 »
Цитировать
DSA:
print header(-cookie=>$cookie,-Refresh => "1; URL = test.pl");

вот только насчет того что "URL=test.pl"
Цитировать

You should always use full URLs (including the http: or ftp: part) in redirection requests. Relative URLs will not work correctly.

могут работать неправильно..
 в исканиях.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28