2014-02-10 168 views
-2

我试图用输入框中的值更改网络配置。当页面加载时,它们显示字段的地址,并且它们可以由用户编辑。当用户点击更新按钮时,它们必须更改为新值。我无法将参数传递给服务器。我有一个bash脚本,它改变了/etc/network/interfaces文件,但我无法用正确的值更新文件。如何将参数从php传递给bash脚本

<?php $mask=shell_exec("some grep for netmask' "); ?> 
<?php $gateway=shell_exec("some grep for gateway"); ?> 
<?php $ip=shell_exec('hostname -I'); ?> 
<?php $domain=shell_exec('hostname -d'); ?> 

<tr><td>Mask</td><td><input name="mask" value="<? echo $mask ?>"</input></td></tr> 
<tr><td>Gateway</td><td><input name="gateway" value="<? echo $gateway ?>"</input></td></tr> 
<tr><td>Address</td><td><input name="ip" value="<? echo $ip ?>"</input></td></tr> 
<tr><td>Domain</td><td><? echo $domain ?></td></tr> 
<tr><td>Update</td><td><form name="input" method="post"> 

回答

0

所以基本上你需要修改一个文件?首先你需要考虑的是,php是由用户运行的,并且该用户应该有足够的权限来访问和修改bash脚本文件。 然后你只需要读取文件,修改参数然后回写。由于我们没有你的bash脚本的代码,我们不能帮你操作它,但你的php代码应该看起来像这样:

<?php 
$bashscript =file_get_contents("yourbashfile.sh"); // read the bash script 
//code to manipulate your bash script with the data in $_POST 

file_put_contents("yourbashfile.sh",$bashscript); // and put it back 
?>