我目前正在尝试在网页上创建一个按钮,实际上会重启服务器。
点击网页上的按钮后,它会向网址发送请求,该网址将重启该网址所源自的服务器,并且UPDATE
我的数据库中的3个api服务器online = 0
但是,一旦过了2分钟,我希望我的数据库中的3个api服务器被设置回online = 1
。
如果在2分钟内再次点击该按钮,那么我想显示一条错误消息This server has already been rebooted in the last 2 minutes, please try again soon
这就是我现在所拥有的,但是当我点击按钮时,它不会像应该的那样重启服务器(我已经测试了这次重启并且确实有效)并且online
没有更新到数据库中0
。
if (isset($_POST['reboot'])){
$fp = fsockopen("api.example.co.uk", 80, $errno, $errstr, 5);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: api.example.co.uk\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
$SQLinsert = $odb -> prepare("INSERT INTO `reboot` VALUES(NULL, reboot, UNIX_TIMESTAMP())");
$SQLUpdate = $odb -> prepare("UPDATE `api` SET `online`= 0 WHERE `name` = 'METHOD1'");
$SQLUpdate = $odb -> prepare("UPDATE `api` SET `online`= 0 WHERE `name` = 'METHOD2'");
$SQLUpdate = $odb -> prepare("UPDATE `api` SET `online`= 0 WHERE `name` = 'METHOD3'");
$notify = success('Server has been rebooted. Please allow up to 2 minutes for it to get back online.');
}
fclose($fp);
}
}
<form method="post"><button name="reboot" type="submit" class="btn pull-right hidden-sm-down btn-success"><i class="mdi mdi-refresh"></i> Reboot Server</button></form>
答案 0 :(得分:0)
好吧,我在你的过程中看到了很多瑕疵,但是如果你愿意,你可以做 cof cof 做一个睡眠($秒)等待这2分钟来显示给您的用户留言
或
也许我没有理解......另一方,并且在我看来,以正确的方式,你应该在这个服务器上创建一个API(谁将数据库在线设置为0)并在刚上去的服务器你叫这个API设置在线= 1,得到了吗?