[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP скрипт статистики сервера.
Roman680
Здравствуйте,

Пол дня убил на этот скрипт, и в итоге мало что получилось.
Проблема в загрузке php скрипта если сервер не отвечает, то он просто грузит страницу и все, надо сделать что бы выводил какой то текст с ошибкой.


Вот код.

<?
error_reporting(E_ALL ^ E_NOTICE);
$fp = @fsockopen("udp://$ip", $port, $errno, $errstr, 1);
if (!$fp)

{
echo "<tr><td bgcolor=\"#FFFFFF\">Socket Error: $errno - $errstr</td></tr>\n";
}
else
{
$packet = 'SAMP';
$packet .= chr(strtok($ip, '.'));
$packet .= chr(strtok('.'));
$packet .= chr(strtok('.'));
$packet .= chr(strtok('.'));
$packet .= chr($port & 0xFF);
$packet .= chr($port >> 8 & 0xFF);

fwrite($fp, $packet.'i');
fread($fp, 11);
$is_passworded = ord(fread($fp, 1));
$plr_count = ord(fread($fp, 2));
$max_plrs = ord(fread($fp, 2));
$strlen = ord(fread($fp, 4));
$hostname = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$gamemode = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$mapname = fread($fp, $strlen);

echo '<b>' . $hostname . '</b><br>'."\n";
echo '<b>Игроков</b>: ' . $plr_count . ' / ' . $max_plrs . '<br>'."\n";
echo '<b>Мод</b>: ' . $gamemode . '<br>'."\n";
echo '<b>Карта</b>: ' . $mapname . '<br>'."\n";
}
fclose($fp);
?>


Помогите кто понимает php =)



Спустя 18 минут, 33 секунды (5.06.2011 - 19:09) alex12060 написал(а):

<?php
error_reporting(E_ALL ^ E_NOTICE);
$fp = @fsockopen("udp://$ip", $port, $errno, $errstr, 1);
if (!$fp)

{
echo "<tr><td bgcolor=\"#FFFFFF\">Socket Error: $errno - $errstr</td></tr>\n";
die();
}
else
{
$packet = 'SAMP';
$packet .= chr(strtok($ip, '.'));
$packet .= chr(strtok('.'));
$packet .= chr(strtok('.'));
$packet .= chr(strtok('.'));
$packet .= chr($port & 0xFF);
$packet .= chr($port >> 8 & 0xFF);

fwrite($fp, $packet.'i');
fread($fp, 11);
$is_passworded = ord(fread($fp, 1));
$plr_count = ord(fread($fp, 2));
$max_plrs = ord(fread($fp, 2));
$strlen = ord(fread($fp, 4));
$hostname = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$gamemode = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$mapname = fread($fp, $strlen);

echo '<b>' . $hostname . '</b><br>'."\n";
echo '<b>Игроков</b>: ' . $plr_count . ' / ' . $max_plrs . '<br>'."\n";
echo '<b>Мод</b>: ' . $gamemode . '<br>'."\n";
echo '<b>Карта</b>: ' . $mapname . '<br>'."\n";
}
fclose($fp);
?>

Спустя 5 минут, 44 секунды (5.06.2011 - 19:15) Roman680 написал(а):
Нет, я так делал, не работает.

Спустя 25 минут, 24 секунды (5.06.2011 - 19:41) ИНСИ написал(а):
Roman680 попробуй так:

$fp = fsockopen("udp://$ip", $port, $errno, $errstr, 1);

if($fp === false || $errno != '') {
echo "<tr><td bgcolor=\"#FFFFFF\">Socket Error: $errno - $errstr</td></tr>\n";
} else {
$packet = 'SAMP';
$packet .= chr(strtok($ip, '.'));
$packet .= chr(strtok('.'));
$packet .= chr(strtok('.'));
$packet .= chr(strtok('.'));
$packet .= chr($port & 0xFF);
$packet .= chr($port >> 8 & 0xFF);

fwrite($fp, $packet.'i');
fread($fp, 11);
$is_passworded = ord(fread($fp, 1));
$plr_count = ord(fread($fp, 2));
$max_plrs = ord(fread($fp, 2));
$strlen = ord(fread($fp, 4));
$hostname = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$gamemode = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$mapname = fread($fp, $strlen);

echo '<b>' . $hostname . '</b><br>'."\n";
echo '<b>Игроков</b>: ' . $plr_count . ' / ' . $max_plrs . '<br>'."\n";
echo '<b>Мод</b>: ' . $gamemode . '<br>'."\n";
echo '<b>Карта</b>: ' . $mapname . '<br>'."\n";
}

fclose($fp);

Спустя 7 минут, 28 секунд (5.06.2011 - 19:48) Roman680 написал(а):
Не, так то же не идет. просто грузит потому что сервер не отвечает.

Спустя 48 минут, 10 секунд (5.06.2011 - 20:36) Игорь_Vasinsky написал(а):
а ты по больше собачек в скриптах пиши biggrin.gif

Цитата
echo "<tr><td bgcolor=\"#FFFFFF\">Socket Error: $errno - $errstr</td></tr>\n";

ошибку вернуло?

Спустя 2 минуты, 31 секунда (5.06.2011 - 20:39) Roman680 написал(а):
Нет не вернуло

Спустя 5 минут, 30 секунд (5.06.2011 - 20:44) Игорь_Vasinsky написал(а):
а ping до сервера вообще есть?

Спустя 1 минута, 29 секунд (5.06.2011 - 20:46) Roman680 написал(а):
Есть, все работает, если сервер не отвечает, php просто грузит, тем самым сайт не работает из-за этого, поэтому надо сделать что бы если сайт не отвечал, выводил текст с ошибкой и все.

Спустя 1 день, 18 часов, 29 минут, 53 секунды (7.06.2011 - 15:16) allplayer написал(а):
Если ты точно уверен, что результат не нулевой должен быть, то поставь сравнение. Если ничего нет-то выдать сообщение об ошибке и exit();
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.