未通过AJAX调用执行PHP shell命令
在我的homeserver管理应用程序中,我添加了一个功能,可以通过该应用程序远程唤醒PC。 实现这一点的PHP脚本非常有效,但我希望能够通过AJAX调用实现这一点 调用如下所示:未通过AJAX调用执行PHP shell命令,php,ajax,shell,wake-on-lan,Php,Ajax,Shell,Wake On Lan,在我的homeserver管理应用程序中,我添加了一个功能,可以通过该应用程序远程唤醒PC。 实现这一点的PHP脚本非常有效,但我希望能够通过AJAX调用实现这一点 调用如下所示: <?php include_once("../classes/BLClient.php"); $blClient = new BLClient(true); $hostname = $_GET["host"]; $client = $blClient->getClientByHostname($host
<?php
include_once("../classes/BLClient.php");
$blClient = new BLClient(true);
$hostname = $_GET["host"];
$client = $blClient->getClientByHostname($hostname);
$mac = $client->getMac();
echo `sudo etherwake -i eth1 $mac`;
?>
用户单击PHP生成的链接:
<a href=\"javascript:wake('$hostname')\">Wake</a>
显示两个警报,这意味着执行AJAX调用。
php脚本如下所示:
<?php
include_once("../classes/BLClient.php");
$blClient = new BLClient(true);
$hostname = $_GET["host"];
$client = $blClient->getClientByHostname($hostname);
$mac = $client->getMac();
echo `sudo etherwake -i eth1 $mac`;
?>
但是,我的电脑没有被唤醒。如果我直接浏览到脚本,它确实有效…您正在触发一个
$。post
ajax请求,但您正在PHP脚本中读取一个$\u GET
参数。改为执行$.get
ajax请求,否则数据将在$\u POST
中,而不是在$\u get
中
或者,您可以使用
$\u请求
superglobal,它在PHP中同时包含post和get变量。您正在触发一个$.post
ajax请求,但您正在PHP脚本中读取一个$\u get
参数。改为执行$.get
ajax请求,否则数据将在$\u POST
中,而不是在$\u get
中
或者,您可以使用$\u请求
superglobal,它在PHP中包含post和get变量。您可能需要使用
$\u POST[“主机”]
或$\u请求[“主机”]
在您的php脚本中,正如您正在做一篇Jquery文章一样
在浏览器中,您可能正在传递主机,如:
http://www.mysite.com/ajax/wake.php?host=xxxxxxxx
这会导致$\u GET中出现“主机”。您可能需要使用
$\u POST[“主机”]
或$\u请求[“主机”]
在您的php脚本中,正如您正在做一篇Jquery文章一样
在浏览器中,您可能正在传递主机,如:
http://www.mysite.com/ajax/wake.php?host=xxxxxxxx
这导致“主机”出现在$\u GET中。你正在进行post调用“
$.post
”,因此在这里你必须使用“$\u post[“主机”]
”你正在进行post调用“$.post
”,所以在这里你必须使用“$\u post[“主机”
”