Почему моя программа Perl CGI дает сбой, когда я включаю файл? - PullRequest
0 голосов
/ 30 января 2010

Я пытаюсь создать базовый шаблон, который затем загружает данные в зависимости от того, какие действия предпринимаются. Я включил (обязательно) несколько страниц, что было хорошо, но когда я включил другой файл, который я получил внутреннюю ошибку 500 вставьте код прямо и он прекрасно работает:

Вот что у меня есть;

#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
require LWP::UserAgent;
use DBI;


    #deal with post requests
    require "perl/post-sort.pl";
    #loading stylesheets and javascripts
    require "header.pl";
    # bring in loggin js
    if( $arg{REQUEST_KEY} eq "") {
        require "javascript/js-main-login.pl";
    }
    print "</head> \n";
    print " \n";
    ...
    ...

Perl / post-sort.pl

my %arg = ();
for (split /\&/, <STDIN>) {
   my ($key, $val) = split /=/;
   $val =~ s/\+/ /g;
   $val =~ s/%([0-9a-fA-F]{2})/chr(hex($1))/ge;
   $arg{$key} = $val;
}

Любая помощь высоко ценится.

1 Ответ

4 голосов
/ 30 января 2010

Внутренняя ошибка сервера 500 часто указывает на неправильный или отсутствующий заголовок. Убедитесь, что во включенном коде первое, что выводится (в браузер), это заголовок, или убедитесь, что ничего не печатается и исходный код выведет правильный заголовок.

Другая возможность состоит в том, что файл, который вы require ', не "возвращает true как последний оператор" (т. Е. Не заканчивается 1;), что может привести к сбою вашего скрипта при время и выдает 500 ошибок.

Также см. по поводу обсуждения отладки сценариев CGI с более ранних версий.

...