我试图学习如何使用html和php更改某些debian系统设置。我有几个bash脚本为我做事,我想通过Web应用程序来完成它们。
现在我正试图弄清楚如何在名为/etc/hostapd/hostapd.conf的文件中更改SSID名称。
更改SSID名称:_____输入新的SSID_____ [按钮]
一旦有人输入新的SSID名称并按下按钮,那么我将使用php执行bash脚本或仅使用SED命令替换/etc/hostapd/hostapd.conf中的文本,然后显示是否成功或不。我假设我会使用函数和if / then / else。我已经制作了一些像样的bash脚本来自动化某些东西并希望深入到网上。我非常了解并理解HTML,而且PHP似乎也难以理解。
我怎样才能完成这样的事情?
我已尝试在没有用户输入的情况下制作按钮,但无法使其工作,因此尚未尝试使用文本框。假设权限并发现了一些关于向sudo添加Nginx或www-data的内容。
<?php if (isset($_POST['button'])) { exec('echo Hello World'); } ?>
<form action="" method="post">
<button type="submit" name="button">Run</button>
</form>
(我从我找到的另一篇文章修改了这段代码,但是并没有在页面上显示Hello World。)
答案 0 :(得分:1)
在代码中,您刚刚调用了exec()
方法并传递了一个bash命令,输出将返回给函数而不进行回显或打印。你需要回显出返回的字符串或类似的东西:
<?php
echo exec("echo \"Hello World\");
?>
答案 1 :(得分:0)
也许权限有限,请尝试{ exec('sudo echo Hello World'); }
echo exec('whoami');
是否可行mybe你只需要显示结果
{ echo exec('sudo echo Hello World'); }
答案 2 :(得分:0)
我发现这个代码在其他地方可用于按钮。现在我如何使用输入文本框并将该变量传递给Linux中的SED命令?
void makeblock(block** data_p){
block* data = *data_p;
data->a=1; data->b='A'; data++;
data->a=2; data->b='B'; data++;
}
答案 3 :(得分:0)
如果你以用户www-data运行echo而不是echo出现在哪里?
将其回显到您可以使用的文件
if (isset($_POST['button']))
{
shell_exec("echo $_POST['button'] > /tmp/ssid");
}
使用shell脚本来执行ssid所需的操作。