2013-10-02 5 views
0

Я пытаюсь создать сценарий, где я могу проверить статус сервера (Online/Offline) для серверов, таких как: Teamspeek, Minecraft и другие.У меня есть некоторые проблемы с cheking состояние сервера

Я нашел этот сценарий:

<?php 
    function getStatus($ip,$port){ 
      $socket = @fsockopen($ip, $port, $errorNo, $errorStr, 3); 
      if(!$socket) return "offline"; 
      else return "online"; 
     } 
    echo getStatus("server.com", "80"); 
?> 

Но вместо того, чтобы изменить имя и порт Севера я wnat, чтобы получить его из базы данных MySQL. Итак, я сделал это, но моя проблема: я не могу подключить строку к скрипту. мой код, чтобы получить строку выглядит следующим образом:

<?php 
// Check to see the URL variable is set and that it exists in the database 
if (isset($_GET['id'])) { 
// Connect to the MySQL database 
include "connect_mysql.php"; 
$id = preg_replace('#[^0-9]#i', '', $_GET['id']); 
// Use this var to check to see if this ID exists, if yes then get the product 
// details, if no then exit this script and give message why 
$sql = mysql_query("SELECT * FROM servers WHERE id='$id' LIMIT 1"); 
$productCount = mysql_num_rows($sql); // count the output amount 
if ($productCount > 0) { 
    // get all the product details 
    while($row = mysql_fetch_array($sql)){ 
     $id = $row["id"]; 
     $ip = $row["ip"]; 
     $port = $row["port"]; 
     $getit = $row["getit"]; 
     $name = $row["name"]; 
     $content = $row["content"]; 
    } 

} else { 
    echo "That item does not exist."; 
    exit(); 
}  
} 
?> 

Так я думал, что я просто не мог изменить echo getStatus("server.com", "80"); To echo getStatus("$ip", "$port"); Но это не работает. Есть ли кто-нибудь, кто знает, что я должен делать?

+0

Какова стоимость '$ ip' и' $ port'? –

ответ

0

Прежде всего. Используйте mysqli_ вместо mysql.

Во-вторых, если вы ограничиваете результат на 1, тогда вам не нужен цикл while.

Теперь, когда вы получаете идентификатор в получить метод, вы можете проверить его в базе данных и получить сведения:

Вам придется стрелять функцию GetStatus() как только вы получаете детали от база данных.

if ($productCount == 1){ 
    echo getStatus($row["ip"],$row["port"]); 
} else { 
     echo "That item does not exist."; 
} 
+1

Спасибо. Я расскажу, как это работает :) –

Смежные вопросы