Есть CGI скрипт, нужно вывести в браузер результат работы программы:open(FILE, "sasldblistusers2 |");
while(<FILE>) {
print;
}close(FILE);
Каким образом это можно сделать?
кури perldoc CGI или добавь в начале скрипта
print "Content-type: text/html\n";
print "Pragma: no-cache\n";
print "\n";>Есть CGI скрипт, нужно вывести в браузер результат работы программы:
>
>open(FILE, "sasldblistusers2 |");
>
>while(<FILE>) {
> print;
>}
>
>close(FILE);
>
>Каким образом это можно сделать?
>кури perldoc CGI или добавь в начале скрипта
Я не курю :О)>print "Content-type: text/html\n";
>print "Pragma: no-cache\n";
>print "\n";
Прошу прощения, неправильно описал проблему. Все эти строчки есть и есть работающий скрипт, но ожидаемого эффекта от того кода, который описал выше, к сожалению нет. Видимо, нужно что-то курить насчет STDOUT или чего еще? Пробовал уже и в массив запихивать, но толку нет - все равно результат не выводится.
bash-2.04# cat q.cgi
#!/usr/bin/perl -wuse strict;
print "Content-type: text/html\n";
print "Pragma: no-cache\n";
print "\n";open (CMD, "echo hui |");
print <CMD>;
close (CMD);
>>кури perldoc CGI или добавь в начале скрипта
>Я не курю :О)
>
>>print "Content-type: text/html\n";
>>print "Pragma: no-cache\n";
>>print "\n";
>Прошу прощения, неправильно описал проблему. Все эти строчки есть и есть работающий
>скрипт, но ожидаемого эффекта от того кода, который описал выше, к
>сожалению нет. Видимо, нужно что-то курить насчет STDOUT или чего еще?
>Пробовал уже и в массив запихивать, но толку нет - все
>равно результат не выводится.
>Есть CGI скрипт, нужно вывести в браузер результат работы программы:
>
>open(FILE, "sasldblistusers2 |");
>
>while(<FILE>) {
> print;
>}
>
>close(FILE);
>
>Каким образом это можно сделать?То есть просто вывести содержимое файла? :)
#!/usr/bin/perl
print "Content-type: text/html\n";
open(FILE, "sasldblistusers2");
while ($i=<FILE>){
print $i;
}
close (FILE);
>То есть просто вывести содержимое файла? :)
>#!/usr/bin/perl
>
>print "Content-type: text/html\n";
>open(FILE, "sasldblistusers2");
>while ($i=<FILE>){
>print $i;
>}
>close (FILE);
sasldblistusers2 это не файл - это команда, мне нужно вернуть результат выполнения команды open(FILE, "sasldblistusers2 |");
В shell результат выводится, а вот в браузер нет.
>print "Content-type: text/html\n";print "Content-type: text/html\n\n";
>команды open(FILE, "sasldblistusers2 |");
open(FILE, "/usr/sbin/sasldblistusers2 2>&1 |");
>print "Content-type: text/html\n\n";
>open(FILE, "/usr/sbin/sasldblistusers2 2>&1 |");
Это перенаправляет стандартный поток ошибок, но мне нужен результат работы - список пользователей.
Разобрался в чем дело, вывода результата работы не было из-за отсутствия самого результата. Команду надо было запускать из под root. Сделал через open(FILE, "sudo sasldblistusers2 |"), хотя этот способ рисковый.
Большое спасибо всем кто отвечал!