我正在编写一个小脚本来对 APC 电源条进行电源控制。我的脚本运行良好,但我将它扩展到一个有 24 个插座的单元,我不希望脚本为每个端口关闭、重新启动和打开电源部分,所以我决定使用循环如下:
for ($Outlet = 1; $Outlet <= 24; $Outlet++) {
//Power On
if(isset($_POST['APCPowerOnA$Outlet'])) {
$shell_command = "snmpset -v 1 -c $community $apc01_ip $mib.$Outlet i 1";
$return=array();
exec($shell_command, $return);
}
//Power Off
if(isset($_POST['APCPowerOffA$Outlet'])) {
$shell_command = "snmpset -v 1 -c $community $apc01_ip $mib.$Outlet i 2";
$return=array();
exec($shell_command, $return);
}
//Reboot
if(isset($_POST['APCPowerRebootA$Outlet'])) {
$shell_command = "snmpset -v 1 -c $community $apc01_ip $mib.$Outlet i 3";
$return=array();
exec($shell_command, $return);
}
我将此文件包含在另一个文件中,该文件的每个端口具有以下代码:
<form method="post" action="[XXX]">
<input type="submit" name="APCPowerOnA1" value="Power On" id="APCPowerOnA1" />
<input type="submit" name="APCPowerOffA1" value="Power Off" id="APCPowerOffA1" />
<input type="submit" name="APCPowerRebootA1" value="Reboot Port" id="APCPowerRebootA1" />
</form>
注意 action="[XXX]" 只是这个论坛的一个占位符,不要在公共论坛上提供 url :)
每个端口使用其中一个,每次将 ID 和名称增加 1(此示例为端口 1)。
当我运行脚本时,将变量: $Outlet 替换为 say 1 端口响应命令,但是当我尝试循环它时,似乎没有任何效果。当我对“APCPowerOnA$Outlet”进行回显时,我得到 APCPowerOn1、APCPowerOn2 ... APCPowerOn24,那么为什么 POST 不起作用?我错过了一些明显的东西?
提前致谢!