Автор Тема: Не выполняется простейший скрипт на Денвере.  (Прочитано 4146 раз)

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

Оффлайн Oleg111

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Доброго времени суток.
При запуске следущего скрипта:
#!/usr/bin/perl -w
print <Content-type: text/html;



Hello World


Greetings, Terrans!




end_print;


выходят две ошибки в файле error:

[Mon Sep 22 04:41:48 2003] [error] [client 127.0.0.1] Premature end of script headers: /home/test.ru/cgi/prostaya.cgi
[Mon Sep 22 04:41:48 2003] [error] [client 127.0.0.1] Can\'t find string terminator "EOF" anywhere before EOF at \\home\\test.ru\\cgi\\prostaya.cgi line 2.

Я не знаю английского, но примерно 2-я означает, что вроде как "не в состоянии обнаружить указатель конца строки "end_print" в пределах до того как закончен файл". А 1-я " Преждевременный вызов некого скрипта из /home/test.ru/cgi/prostaya.cgi ".
Мне не ясно какую ошибку я мог совершить при указании конца строки here-документа, а также не ясна суть претензий по первой ошибке.
В строке браузера набираю: http://test.ru/cgi/prostaya.cgi
Соответственно скрипт находится в папке home/test.ru/cgi/prostaya.cgi
Я задавал этот вопрос на форум Денвера, но там молчат. Скрипт в принципе простой, так что бы освоить CGI.

Похожая какртина с использованием модуля CGI.pm

Ошибки:
[Mon Sep 22 15:46:58 2003] [error] [client 127.0.0.1] Premature end of script headers: /home/test3.ru/cgi/dir_imp.cgi
[Mon Sep 22 15:46:58 2003] [error] [client 127.0.0.1] Can\'t locate CGI.pm in @INC (@INC contains: .) at \\home\\test3.ru\\cgi\\dir_imp.cgi line 3.

[Mon Sep 22 15:46:58 2003] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at \\home\\test3.ru\\cgi\\dir_imp.cgi line 3.

1-я. Преждевременный вызов некого скрипта из: /home/test3.ru/cgi/dir_imp.cgi
2-я. Не в состоянии определить местоположение в @INC.
3-я. Предотвращен запуск \\home\\test3.ru\\cgi\\dir_imp.cgi из-за неудачной компиляции на 3-й строке скрипта.

(по сравнению с первым скриптом изменилась только папка с test.ru на test3.ru).

Примеры взяты из книги «Изучаем Perl” Рэндала Шварца и Тома Кристиана.
Подскажите примерно, где может быть ошибка? Или скинте рабочий пример взаимодействия Perl с HTML который идет на Денвере.
Спасибо.

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Не выполняется простейший скрипт на Денвере.
« Ответ #1 : 22 Сентября 2003, 15:44:00 »
вместо
end_print;
пиши
end_print

имеется в виду последняя строка

зы: и если это совсем последняя строка, добавь еще пустую строку после.
« Последнее редактирование: 22 Сентября 2003, 15:53:54 от ondr »
0 OK, 0:1

Оффлайн Oleg111

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не выполняется простейший скрипт на Денвере.
« Ответ #2 : 22 Сентября 2003, 18:24:17 »
Ништяк спасибо. Заработала. А я и не вижу.
 В предыдущем сообщении я совсем забыл скинуть скрипт с использованием модуля CGI.pm. Вот он:
#!/usr/bin/perl -w
# cgi-bin/lce_cream
use CGI qw(:standard);
print header();
print start_html("Hello World"), h1("Hello World");
my $favorite = param("flavor");
print p("Your favorite flavor is $favorite.");
print end_html()

  После того как я убрал точку с запятой из последней строки осталась только одна ошибка, вот она:
 
[Tue Sep 23 00:06:03 2003] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at \\home\\test3.ru\\cgi\\dir_imp.cgi line 3.

 Примерно по русски:
 Предотвращен запуск \\home\\test3.ru\\cgi\\dir_imp.cgi из-за неудачной компиляции на 3-й строке скрипта.
  Вот.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Не выполняется простейший скрипт на Денвере.
« Ответ #3 : 22 Сентября 2003, 18:29:30 »
Цитировать
Oleg111:
Can\'t locate CGI.pm in

А нету у тебя модуля CGI.
Инсталь или возьми наконец полную версию активстейтовского Perl
The documentations is your friend

Оффлайн Oleg111

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не выполняется простейший скрипт на Денвере.
« Ответ #4 : 22 Сентября 2003, 19:19:03 »
Хорошо я уточню на Денвере.

Оффлайн Oleg111

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не выполняется простейший скрипт на Денвере.
« Ответ #5 : 22 Сентября 2003, 19:31:58 »
Дмитрий Котеров (автор пакета Денвер) говорит:
  Z:\\usr\\lib\\CGI.pm:
  $CGI::VERSION=\'2.752\';

 из чего я понял, что на Денвере установлен таки модуль CGI.pm, версии 2,752. Значит что то другое.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Не выполняется простейший скрипт на Денвере.
« Ответ #6 : 23 Сентября 2003, 09:29:31 »
Oleg111
Есть классный скрипт infoperl.cgi - находишь его, запускаешь и видишь какие модули у тебя реально установлены... а потом разбираешься...

Оффлайн flymio

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 34
  • +0/-0
  • 0
    • Просмотр профиля
    • http://notlj.ru
Не выполняется простейший скрипт на Денвере.
« Ответ #7 : 05 Октября 2003, 15:07:00 »
print <Content-type: text/html;
виновата точка с запятой после text/html
лучше так:
print "Content-type: text/html\\n\\n";
а дальше что угодно

 

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