2014-10-18 207 views
1

我想在我的XAMPP服務器中執行一個python腳本,但每次我調用腳本時都會得到一個空白頁。當我嘗試在地址localhost/cgi-bin/script.py中執行它時,它工作正常,但是當我嘗試在htdocs中執行它時,它會顯示爲空白。在我的htdocs目錄中,我有2個文件:XAMPP-python腳本執行

HTML文件:

<!DOCTYPE html> 
<html> 
<body> 


<form name="input" action="http://localhost/insert.PHP" method="post"> 
User: <input type="text" name="user" value="Obama"><br> 
Password: <input type="password" name="pass"> 


<input type="submit" value="Submit"> 
</form> 

</body> 
</html> 

insert.php文件帶來的.py文件來執行:

<?php 

$Nome = $_POST['user']; 
$Password = $_POST['pass']; 

echo ini_get("disable_functions"); 



$python = exec('C:\xampp\cgi-bin\script.py'); 
echo $python; 

?> 

最後的.py文件(script.py)在cgi-bin目錄中:

#!C:\Python27\python.exe 

import cgitb 
cgitb.enable() 

print "Content-Type: text/html" 
print 
print """ 
    <TITLE>CGI script</TITLE> 
    <H1> just fine !</H1> 
""" 
print " <p>I am a script in python! </p>" 

因此,我鍵入用戶名和密碼,它重定向到insert.php,我得到一個空白頁。謝謝!

+0

閱讀PHP exec的文檔。 http://php.net/manual/en/function.exec.php它*不*返回執行的命令的完整輸出。爲什麼你首先通過PHP運行python腳本?爲什麼不直接執行它? – deets 2014-10-18 13:44:55

+0

謝謝,這個問題真的是從PHP調用。 – 2014-10-18 15:08:24

回答

3

我認爲問題在於您已啓用安全模式,從而阻止在安全模式目錄之外執行。請參閱http://php.net/manual/en/function.exec.php說明。

您也可以嘗試使用system()函數。

我也認爲從php調用python腳本不是一個好主意。 :)

編輯: 如果你是在開發環境中,我建議您嘗試以下操作:

1)複製script.py到你的PHP文件的目錄。

2)將.php exec行更改爲system('python script.py');

3)如果可以,請嘗試在cgi-bin目錄中調用.py。如果cgi-bin比htdocs目錄高一級,你可以嘗試system('python .. \ cgi-bin \ script.py');

我無法在我的機器上試用它,因爲我運行Mac。

4)我看了安全模式的描述,似乎它在PHP 5.4.0中被刪除。所以如果你的PHP版本高於這個版本,它不適用於你。我建議也嘗試在路徑中正斜槓:system('python ../cgi-bin/script.py');

祝你好運。讓我知道它是否有幫助。

+0

感謝您的反饋Yerke。你如何建議我打電話給我的腳本?我在這個東西是新的:s – 2014-10-18 14:34:34

+0

我解決了當我更改

到。我似乎你的猜測是正確的,我將永遠不會再嘗試從一個PHP文件調用。 – 2014-10-18 15:07:37