2011-02-14 50 views
3

我試圖從php內部執行cgi/python腳本,同時將cgi/python腳本傳遞給一個參數。在PHP中調用cgi/py參數

在我的PHP

我有

<? echo exec('/var/www/cgi-bin/test.cgi ' + $_POST["var"]); ?> 

但是它不工作,並在Apache日誌,它說 'SH:0未找到'

這個測試腳本很簡單:

#!/usr/bin/python 
import cgi, sys, os 

for arg in sys.argv: 
    print arg 
+0

在PHP中,字符串連接運算符是`.`,而不是`+`。 – 2011-02-14 20:48:17

回答

2

正如有人指出的那樣,PHP中的字符串連接操作符是.而不是+

「添加」非數字字符串的結果爲0.這就是爲什麼shell試圖運行命令「0」並返回錯誤:「sh:0 not found」的錯誤。

試試這個:

exec('/var/www/cgi-bin/test.cgi ' . escapeshellcmd($_POST["var"])); 

另外,還要注意shell命令參數應與escapeshellcmd進行轉義。