HTML表单按钮运行命令PHP执行


html form button run command php exec

我正在尝试学习如何使用html和php更改一些debian系统设置。我有一些bash脚本为我做的事情,我想通过一个web应用程序来完成它们。

现在我正试图找出如何在一个名为/etc/hostapd/hostapd.conf的文件中更改SSID名称。

更改名称名称:_____Enter新SSID_____(按钮)

一旦有人输入新的SSID名称并点击按钮,那么我会让php执行一个bash脚本或只是一个SED命令来替换/etc/hostapd/hostapd.conf中的文本,然后显示它是否成功。我假设我会使用函数和if/then/else。我已经编写了一些不错的bash脚本来自动化某些事情,并希望深入研究web。我非常了解HTML, PHP似乎也不难理解。

我怎样才能完成这样的事情?

我试过制作一个没有用户输入的按钮,但不能让它工作,所以还没有尝试一个文本框。假设权限,并发现一些关于添加Nginx或www-data到sudo。

<?php if (isset($_POST['button'])) { exec('echo Hello World'); } ?>
<form action="" method="post">
<button type="submit" name="button">Run</button>
</form>

(我从另一篇文章中修改了这段代码,但没有在页面上显示Hello World)

与您的代码一样,您刚刚调用了exec()方法并传递了一个bash命令,输出将返回给函数,而不是回显或打印。您需要回显返回的字符串或类似的内容:

<?php
echo exec("echo '"Hello World'");
?>

此处参考- http://php.net/manual/en/function.exec.php

可能权限有限,试试{ exec('sudo echo Hello World'); }

  1. 尝试echo exec('whoami');是否可以工作
  2. echo $_POST[]判断值是否存在
  3. 可能命令有语法错误

也许你只需要显示结果

{ echo exec('sudo echo Hello World'); }

我在其他地方找到了这个按钮的代码。现在我如何在linux中使用输入文本框并将该变量传递给SED命令?

<?php
echo
"<form action='' method='post'>
<input type='submit' name='use_button' value='something' />
</form>";
if(isset($_POST['use_button']))
{
    echo "hey";
}
?>

如果您以用户www-data的身份运行echo,那么echo将显示在哪里?

将其回显到可以使用

的文件中
if (isset($_POST['button']))
{
    shell_exec("echo $_POST['button'] > /tmp/ssid");
}
使用shell脚本来处理ssid。