【问题标题】:html form button run command php exechtml表单按钮运行命令php exec
【发布时间】:2015-10-12 01:58:40
【问题描述】:

我正在尝试学习如何使用 html 和 php 更改一些 debian 系统设置。我有一些 bash 脚本可以为我做事,我想通过 Web 应用程序来做。

现在我正试图弄清楚如何在名为 /etc/hostapd/hostapd.conf 的文件中更改 SSID 名称。

更改 SSID 名称:_____输入新 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。)

【问题讨论】:

  • 这不会回显任何内容,您必须执行以下操作:echo exec("echo \"hello world\"");。 Exec 从 bash 返回值,而不是 echo。

标签: php linux bash button exec


【解决方案1】:

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

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

参考这里-http://php.net/manual/en/function.exec.php

【讨论】:

    【解决方案2】:

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

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

    也许你只需要显示结果

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

    【讨论】:

    • 我正在挖掘更多内容,发现这个显示输出。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      如果您以用户 www-data 的身份运行 echo,那么 echo 会出现在哪里?

      将其回显到您可以使用的文件中

      if (isset($_POST['button']))
      {
          shell_exec("echo $_POST['button'] > /tmp/ssid");
      
      }
      

      比使用 shell 脚本对 ssid 做你想做的事情。

      【讨论】:

        猜你喜欢
        • 2013-01-23
        • 2019-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多