2015-08-23 72 views
0

我有一個PHP窗體,讀取來自用戶的2個輸入:數據庫名稱和目錄。窗體輸入和shell命令

<form action="welcome.php" method="post"> 
DB Name: <input type="text" name="dbname"><br> 
Directory: <input type="text" name="dir"><br> 
<input type="submit"> 
</form> 

什麼,我試圖做的是,根據用戶的輸入,就對dbname,執行mysqldump的備份數據庫。和目錄,執行焦油-czvf $dir.tar.gz $dir.

的焦油部分,我有以下幾點:

$directory=$_POST["dir"]; 

$output = shell_exec('tar -czvf "{$directory}".tar.gz "{directory}"'); 

然而,它的執行,而不是期望的結果。請幫忙。感謝

+0

用它來注意,了shell_exec是最通常添加到disabled_functions php.ini配置中的原因很明顯這將是有益的。在這種情況下可能是一個好地方。 –

+0

在繼續之前,請看看http://stackoverflow.com/questions/1295346/is-php-exec-safe – IROEGBU

回答

1

發送參數與配額,所以你應該像

$directory=$_POST["dir"]; 
$output = shell_exec('tar -czvf "{$directory}"'); 
+0

即使帶有引號仍然不起作用。 –