2012-02-20 71 views
0

我是新來的python .. 想知道,如何用cgi腳本中的參數調用python程序。 並且還從python prog中檢索返回值。如何從perl cgi腳本調用python程序

我嘗試這樣做..但沒有工作......

my $bin = "/var/www/pythonprog.py"; 
    my @args = ($name1,$pass1); 
    my $cmd = "$bin ".join(" ", @args); 
    $cmd =~ tr///; 
    system ($cmd); 
+0

看起來像一個perl問題?確保你在python文件中有正確的hashbang並設置適當的權限。 – monkut 2012-02-20 08:18:04

+0

系統命令採用一個列表,其中第一個值是可執行文件的路徑,其後的每個值都是命令行參數。如果你是perl的新手,請查看這裏的perldoc:http://perldoc.perl.org/functions/system.html – GoldenNewby 2012-02-20 08:26:07

+1

出於好奇,你期望'$ cmd =〜tr ///;'做什麼? – TLP 2012-02-20 08:33:22

回答

0

系統想要的清單參數。 試試這個:

my $bin = "/var/www/pythonprog.py"; 
my @cmd = ($bin,$name1,$pass1); 
system (@cmd); 

編輯:看起來你有污點的問題,請參見下面的大意見。

+0

不...還是有一個錯誤.... 軟件錯誤: 不安全$ ENV {PATH}同時用-T開關在/usr/lib/cgi-bin/new.cgi線運行23 如需幫助,請發送郵件給網站管理員(webmaster @ localhost),並提供此錯誤消息以及錯誤的時間和日期。 – Jay 2012-02-20 08:32:48

+3

@JayanthSilesh'-T'(污染)安全開關讓你知道你的路徑沒有被正確地去除污染。您可以通過設置路徑來解決它,例如'$ ENV {PATH} =「」',結果你必須使用完整路徑進行任何系統調用,例如'system(「/ bin/echo foo」)'。 – TLP 2012-02-20 08:40:14

+0

參見:http://docstore.mik.ua/orelly/perl/prog3/ch23_01.htm – AntonioD 2012-02-20 08:40:41