我正在尝试使用输入框中的值更改网络配置。当页面加载时,它们会显示字段的地址,并且可以由用户进行编辑。当用户点击"更新"按钮时,必须将它们更改为新值。我无法将参数传递给服务器。我有一个更改/etc/网络/接口文件的 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">
所以基本上你需要修改一个文件? 您需要考虑的第一件事是 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
?>