2015-08-23 45 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

即使带有引号仍然不起作用。 –