Как мне прочитать файл на моем веб-сервере из моего скрипта Perl CGI и затем распечатать данные? - PullRequest
0 голосов
/ 28 ноября 2010

У меня есть файл "a.cpm" на моем веб-сервере. У меня есть обработчик, который, когда вы переходите на asdasd.com/a.cpm, запускает скрипт Perl CGI. Я попытался прочитать файл, затем распечатать данные, но он ничего не делает.

#!/usr/bin/perl
print "Content-type:text/html\r\n\r\n";
print "test string";
print "<br>";
$filepath = $ENV{'PATH_TRANSLATED'};
open FILE, $filepath or die $!;
my @lines = <FILE>;
while (my $line = <FILE>) 
{
print $_;
}

Ответы [ 3 ]

2 голосов
/ 28 ноября 2010

Прочитали ли вы Брайан Д Фой Как я могу устранить неполадки в моем скрипте Perl CGI? и выполнить его рекомендации?

0 голосов
/ 28 апреля 2014

Принятый ответ не работает "из коробки" - здесь есть небольшое изменение, которое нужно - просто настройте путь на file.txt:

#!/usr/bin/perl
use CGI qw(:standard);
print <<HTML;
Content-type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head><title>Path Translated</title></head>
<body>
HTML

open FILE, "file.txt" or die "could not open filename";
while(<FILE>) {
    print $_;
}
close FILE;

print <<HTML;   
</body>
</html>
HTML
0 голосов
/ 28 ноября 2010

Если ваш обработчик работает нормально и вы изменили права доступа к файлу chmod a+x вашего CGI-скрипта, тогда я предлагаю использовать модуль CGI, как показано в коде ниже.РЕДАКТИРОВАТЬ : Проверка заражения, включение предупреждений и использование строгих правил являются хорошей практикой, особенно для веб-приложений.

#!/usr/bin/perl -wT
use strict;
...