如何在PHP

时间:2018-04-13 16:53:30

标签: php mysql

我目前正在尝试在网页上创建一个按钮,实际上会重启服务器。

点击网页上的按钮后,它会向网址发送请求,该网址将重启该网址所源自的服务器,并且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>

1 个答案:

答案 0 :(得分:0)

好吧,我在你的过程中看到了很多瑕疵,但是如果你愿意,你可以做 cof cof 做一个睡眠($秒)等待这2分钟来显示给您的用户留言

也许我没有理解......另一方,并且在我看来,以正确的方式,你应该在这个服务器上创建一个API(谁将数据库在线设置为0)并在刚上去的服务器你叫这个API设置在线= 1,得到了吗?