2012-07-13 52 views
0

一個相當簡單的問題,我想。有PHP執行()或系統()導致500錯誤

<?php 
    if (isset($_POST['url']) && !empty($_POST['url'])) { 
     system('wget --no-parent --timestamping --convert-links --page-requisites --no-directories --no-host-directories -erobots=off '.$_POST['url']); 
} else { 
    echo '<form method="post"><input type="url" name="url"><input type="submit"></form>'; 
} 

?> 

在PHP或Apache2的一些模塊,我需要啓用/安裝這個工作 - 這是我的測試代碼(很明顯,我將添加的安全防範措施,當我在寫這是真的)?如果有幫助,我通過瀏覽器訪問此頁面。即使命令尚未被調用(部分if語句未運行),也會發生這種情況,如果我註釋掉system()或exec()行,則500錯誤消失。

回答

0

您的代碼對我的作品,請檢查是否system功能是禁用了。您可以使用ini_get('disable_functions')來檢查它是否被禁用。

0

您提供的代碼有錯誤;在最後您放置點在錯誤的地方:中

'.$_POST['url']); 

代替

.'$_POST['url']); 
+0

謝謝 - 但我解決了它,併發生了同樣的問題... – Alfo 2012-07-13 11:14:25

+0

我已經複製了您的確切代碼,並且因爲禁用了系統() - 命令而得到了白頁,但沒有發生任何錯誤。你想要完成什麼?你不能使用PHP cURL庫或函數file_get_contents()來代替嗎? – Destralak 2012-07-13 12:54:20

+0

我試圖下載一個頁面和所有它的依賴關係到一個目錄中,我被告知wget是最好的方法。你能想到其他方法嗎? – Alfo 2012-07-13 13:43:41