Автор Тема: 500 Internal System Error  (Прочитано 3414 раз)

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

Оффлайн woozex

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
500 Internal System Error
« : 18 Июня 2002, 16:39:22 »
Встречается много сообщений на тему этой ошибки, но все не то. Помогите, плиз, кто может!
 
Вот мой скрипт:
    #!/usr/bin/perl
    use CGI qw/:cgi-lib/;
    print header(\'text/plain\'),
    "test\\n";
    ReadParse();
    print "var=$in{var}";
 
Сначала скрипт выполняется несколько раз нормально, но затем через раз вылезает subj, затем если еще понажимать на Reload - ошибка уже каждый раз.
Что это может быть?
 
Копирую в Ascii режиме, сервер Apache.
Скрипт типа
     #!/usr/bin/perl
     use CGI qw/:standard/;
     print header(\'text/plain\'),
     "test\\n";
выполняется нормально любое количество раз.
 
Сообщение об ошибке из error log:
 
[Tue Jun 18 12:47:28 2002] [error] Undefined subroutine &Apache::ROOT::cgi_2dbin::_31_2ecgi::header called at /var/www/world_cup/forum/cgi-bin/1.cgi line 3.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
500 Internal System Error
« Ответ #1 : 19 Июня 2002, 18:52:05 »
Что за ф-ция ReadParse()? Считывает параметры?
Если да, почему бы не использовать param(...)
Попробуй этот скрипт:

#!/usr/bin/perl
use CGI qw/:standard/;
print header(\'text/plain\'),
"test\\n";
$in{var}=param(\'var\');
print "var=$in{var}";

Оффлайн woozex

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
500 Internal System Error
« Ответ #2 : 20 Июня 2002, 09:02:05 »
Спасибо, так работает, но пока неизвестно подойдет ли это мне, поскольку я переделываю старые скрипты с cgi-lib.pl на CGI.pm. Прочитал статью "Как перейти с cgi-lib.pl на CGI.pm" и стал делать так, как там написано. Ведь хочется все сделать с наименьшими затратами!
ReadParse действительно разбирает строку параметров. Она существовала в cgi-lib.pl и для совместимости скриптов ее и др. включили в CGI.pm

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
500 Internal System Error
« Ответ #3 : 20 Июня 2002, 16:40:44 »
Можешь эту ф-цию использовать для разбора параметров.

if ($ENV{\'REQUEST_METHOD\'} eq "GET") { $buffer = $ENV{\'QUERY_STRING\'}; }
else { read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});  }
@nvpairs = split(/&/,$buffer);
foreach $pair (@nvpairs)
{  ($namebuffer, $valuebuffer) = split(/=/, $pair);
    $valuebuffer =~ tr/+/ /;
    $valuebuffer =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $in{$namebuffer}=$valuebuffer;
}

Я её в основном пользуюсь т.к. не люблю лишний раз модули подключать. (она по-моему и работает в cgi-lib.pl)

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
500 Internal System Error
« Ответ #4 : 30 Июня 2002, 13:35:35 »
Цитировать
[Tue Jun 18 12:47:28 2002] [error] Undefined subroutine &Apache::ROOT::cgi_2dbin::_31_2ecgi::header called at /var/www/world_cup/forum/cgi-bin/ 1.cgi line 3.

При use CGI qw/:cgi-lib/;  функция header не экспортируется.
Можно сделать еще экспорт ее одной, тогда все будет работать.:)
2B OR NOT 2B = FF

 

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