1

我有一个 web 服务器运行一个带有几个按钮的简单 php 页面 (12345678) 这些按钮通过一个 arduino 控制我家的灯。

现在我想创建一个简单的应用程序来控制这些按钮。PHP脚本发布在下面:

<?php if (isset($_POST['button1'])) { shell_exec('screen -S led -X stuff 1'); } ?>
<?php if (isset($_POST['button2'])) { shell_exec('screen -S led -X stuff 2'); } ?>
<?php if (isset($_POST['button3'])) { shell_exec('screen -S led -X stuff 3'); } ?>
<?php if (isset($_POST['button4'])) { shell_exec('screen -S led -X stuff 4'); } ?>
<?php if (isset($_POST['button5'])) { shell_exec('screen -S led -X stuff 5'); } ?>
<?php if (isset($_POST['button6'])) { shell_exec('screen -S led -X stuff 6'); } ?>
<?php if (isset($_POST['button7'])) { shell_exec('screen -S led -X stuff 7'); } ?>
<?php if (isset($_POST['button8'])) { shell_exec('screen -S led -X stuff 8'); } ?>

<form action="" method="post">
<button type="submit" name="button1">AV Rack</button>
<br>
<button type="submit" name="button2">Scherm bureau + LEDs</button>
<br>
<button type="submit" name="button4">Woonkamer LEDs + Beamer</button>
<br>
<button type="submit" name="button3">Buiten Achter</button>
<br>
<button type="submit" name="button5">Red LED test</button>
<br>
<button type="submit" name="button6">Error test</button>
<br>
<button type="submit" name="button7">Alles aan</button>
<br>
<button type="submit" name="button8">Alles uit</button>
</form>

有人能指出我正确的方向吗?

编辑:

我确实到了某个地方,但不是一路走来。

应用程序正在正常工作并发送命令。Web 界面仍在运行

我认为我的服务器(ubuntu)不接受我发送的信息/命令。我认为我在命令端做错了什么。

index.php?action=""&method="post"&type="submit"&name="button1"

如果我把它放在我的浏览器 url 栏或我尝试过的任何其他字符串中,不会给我结果,而只是带有按钮的页面。

有什么建议么?

4

2 回答 2

2

我喜欢使用这个答案中给出的 HttpRequest 对象

如果您下载该类的副本并将其放入您的项目中,您可以发送如下请求:

HttpRequest mReq = new HttpRequest();
mReq.sendPost(urlToYourServer, data);

您需要填写服务器的 url,以及要发送的数据的 url 编码名称值对列表。我在 php 方面不是特别流利,所以我不太了解您的服务器期望什么参数,但如果data是的话,您将把它们放在哪里。如果没有,你可以给它一个空白字符串。

于 2013-05-31T13:46:21.010 回答
2

实际上,您无法控制这些按钮。您执行一个 POST 请求(您可能想要查看 HTTP-Standard),并且正如代码所示,只要您将任何内容传递给其键为 buttonX 的变量,它就会完成您想要的。对于 POST-Requests,有一个 Java 中的 HTTP 库可以为您完成大部分工作。

[编辑:]教程可能会有所帮助。遗憾的是,发送这样一个简单的请求并没有那么简单,尤其是因为您甚至都不关心答案。但是手头有这段代码,我相信你能弄明白。

[Edit2:] 如果您只想完成它,请查看@FoamyGuy 的答案。这门课看起来不错,我发表了一条评论,结合这门课,你应该很快就能到达那里。

于 2013-05-31T13:42:09.697 回答