Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Status serverów, Kilka skryptów i ERROR :( Need HELP
-Snap-
post
Post #1





Goście







A więc chciałem zrobic www z STATUSAMI SERVERÓW do pewneg gry MuOnline, ale gdy mam 1 status servera wszystko jest OK, problem powstaje wtedy gdy dodam 2,3,4... status server, wyskakuje mi taki oto błąd na www :


Fatal error: Cannot redeclare is_muserver_online() (previously declared in /home/accounts_j/julchoklad/public_html/main.php(94) : eval()'d code:3) in /home/accounts_j/julchoklad/public_html/main.php(94) : eval()'d code on line 23


Prosze o pomoc, a i to jest kod php którego używam do pokazywania statusów:

[/CODE]
<?php
is_muserver_online('111.222.333.444');
function is_muserver_online($ip)
{
$ports = array("<font color=\"000000\">NAZWA SERVERA</font>" => "55901" );

foreach($ports as $server => $port)
{
if($fp = @fsockopen($ip, $port, $errno, $errstr, 1) == false)
{
echo "</b>" . $server . "</b>: <font color=\"FF0000\">Offline</font>";
}
else
{
echo "</b>" . $server . "</b>: <font color=\"00FF00\">Online</font>";
}
}
}
?>
[/CODE]

Prosze o pomoc, wszystko jasno jest opisane.

A to jest skrypt w którym błąd występuje:

Kod
<br>
<?php
is_muserver_online('111.222.333.444');
function is_muserver_online($ip)
{
$ports = array("<font color=\"000000\">NAZWA SERVERA</font>" => "55901" );

foreach($ports as $server => $port)
{
if($fp = @fsockopen($ip, $port, $errno, $errstr, 1) == false)
{
echo "</b>" . $server . "</b>: <font color=\"FF0000\">Offline</font>";
}
else
{
echo "</b>" . $server . "</b>: <font color=\"00FF00\">Online</font>";
}
}
}
?>
<br>
<?php
is_muserver_online('111.222.333.444');
function is_muserver_online($ip)
{
$ports = array("<font color=\"000000\">NAZWA SERVERA</font>" => "55901" );

foreach($ports as $server => $port)
{
if($fp = @fsockopen($ip, $port, $errno, $errstr, 1) == false)
{
echo "</b>" . $server . "</b>: <font color=\"FF0000\">Offline</font>";
}
else
{
echo "</b>" . $server . "</b>: <font color=\"00FF00\">Online</font>";
}
}
}
?>
<br>


Chciałbym żeby ten skryp wyświetlał mi na www sie w taki sposub np:

Server OldMu: Online

Server Jakistam: Offline

Server costam: Offline

Server Costam2: Online

Server blabla: Online

A i Jeszcze jedno Każdy server ma Swoje PORTY otwarte dzięki którym możemy połączyć sie z nim i nie te porty są różne

W tym skrypcie za NAZWA SERVERA jest port 555901

Przerobiłem ten skrypt na taki:

Kod
<?php
function is_muserver_online($ip)
{
$ports = array("<font color=\"000000\">NAZWA SERVERA</font>" => "55901" );

foreach($ports as $server => $port)
{
if($fp = @fsockopen($ip, $port, $errno, $errstr, 1) == false)
{
echo "</b>" . $server . "</b>: <font color=\"FF0000\">Offline</font>";
}
else
{
echo "</b>" . $server . "</b>: <font color=\"00FF00\">Online</font>";
}
}
}


is_muserver_online('ip1');
is_muserver_online('ip2');
is_muserver_online('ip3');
?>


Ale znowu porty są takie same i na stronie wyświetla mi się to tak:

NAZWA SERVERA: OfflineNAZWA SERVERA: OnlineNAZWA SERVERA: Online

Wszytko razem bez przerwy itp. :/

Prosze bardzo o pomoc :/ (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ja się w tym gubie (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tiraeth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Hmm... a czy ty cokolwiek zrozumiałeś z tego skryptu??

Kod
Array
(
[status] => 1                    <----- jeżeli wartość elementu "status" w tablicy jest równa 1 to serwer jest ONLINE
[port] => 55901                  <----- zwraca port
[ip] => 82.146.225.113           <----- zwraca ip
[host] => 82.146.225.113         <----- powinno zwrócić host (jeżeli [ip]=[host] to nie ma hosta - sam ip)
[name] => Warka Mu               <----- nazwa serwera - pobrana z tego $serverNames
)


  1. <?php
  2. function serverStatus($ip, $isIP = true, $port = 55901)
  3. {
  4.    /*
  5.     * zmienna $port trzyma domyslny port dla serwerow
  6.     * zmienna $isIP trzyma informacje o tym czy wartosc
  7.     * w zmiennej $ip to host/adres ip
  8.     */
  9.    $serverNames = array (
  10.              'hefron.no-ip.info:55901' => 'Herfon Mu',
  11.              '82.146.225.113:55901' => 'Warka Mu'
  12.             );
  13.  
  14.    if($isIP)
  15.    {
  16.       $tablica['ip'] = $ip;
  17.       $tablica['host'] = gethostbyaddr($ip);
  18.    }
  19.    else
  20.    {
  21.       $tablica['ip'] = gethostbyname($ip);
  22.       $tablica['host'] = $ip;
  23.    }
  24.  
  25.  
  26.    if($fp = @fsockopen($ip, $port, $errno, $errstr, 1) == false)
  27.    {
  28.       $tablica['status'] = true;
  29.    }
  30.    else
  31.    {
  32.       $tablica['status'] = false;
  33.    }
  34.  
  35.    $tablica['port'] = $port;
  36.    $tablica['name'] = $serverNames[$ip.':'.$port];
  37.  
  38.    return $tablica;
  39. }
  40.  
  41. # przykład użycia
  42. $s2 = serverStatus('hefron.no-ip.info', false);      # pobieramy info z serwera hefron.no-ip.info (HOST) o porcie domyslnym (55901)
  43. $s1 = serverStatus('82.146.225.113', true, '55901'); # pobieramy info z serwera 82.146.225.113 (IP) o porcie 55901 (przeciez nie trzeba bylo go pisac)
  44.  
  45. # jezeli jako pierwszy parametr podalismy adres ip to jako drugi podajemy true, 
  46. ezeli natomiast jest to host to jako drugi parametr podajemy false
  47.  
  48. $status_1 = ($s1['status']) ? 'Online' : 'Offline';  # jezeli status jest 1 to Online
  49. $status_2 = ($s2['status']) ? 'Online' : 'Offline';  # a jezeli 0 to Offline
  50. $color_1 = ($s1['status']) ? 'green' : 'red';
  51. $color_2 = ($s2['status']) ? 'green' : 'red';
  52.  
  53. echo '<b>'.$s1['name'].':</b> <span style=\"color:'.$color_2.';\">'.$status_1.'</span>';
  54. echo '<br /><br />';
  55. echo '<b>'.$s2['name'].':</b> <span style=\"color:'.$color_1.';\">'.$status_2.'</span>';
  56. # przykład użycia
  57. ?>

Zmodyfikowałem funkcję, już tego błędu niepowinno być.... zobacz co teraz ten kod wyświetla, ok?

Ten post edytował tiraeth 29.05.2005, 17:19:06
Go to the top of the page
+Quote Post

Posty w temacie
- Snap   Status serverów   29.05.2005, 14:27:51
- - tiraeth   Za dużo razy utworzyłeś funkcję is_muserver_online...   29.05.2005, 14:31:07
- - Snap   OK wrzuciłem all to co mi dałeś uzupełniając sobe ...   29.05.2005, 15:25:06
- - Ociu   http://wiki.php.pl/index.php/Cannot_redecl...ass_f...   29.05.2005, 15:47:35
- - dr_bonzo   http://pl.php.net/manual/pl/function.gethostbyaddr...   29.05.2005, 16:00:30
- - Snap   dobra a jak usunąć te array i ( ) zeby niebyło ich...   29.05.2005, 16:28:42
- - tiraeth   Hmm... a czy ty cokolwiek zrozumiałeś z tego skryp...   29.05.2005, 16:52:11
- - Snap   OK zrobiłem tak jak mówisz ale : - - - - - Coś ni...   29.05.2005, 17:05:20
- - tiraeth   UPDATE 1. NAPRAWIŁEM BŁDY W KODZIE... TERAZ JUŻ DZ...   29.05.2005, 17:15:06
- - Snap   OK faktycznie teraz już działa Ej dlaczego dy ser...   29.05.2005, 17:41:22
- - Gość_Snap   Dlaczego gdy server jest online to pisze Offline, ...   29.05.2005, 21:04:52
- - dr_bonzo   Cytatjak zrobić, co zkopiować gdzie co dodać żeby ...   29.05.2005, 21:42:22
- - tiraeth   bonzo masz rację niezauważyłem w tym ifie tego fa...   30.05.2005, 13:48:19
- - Gość_Master   Mam problem Mój config wygląda tak: <?php //==...   2.06.2005, 06:08:18
- - Gość_Matikx   [PHP] pobierz, plaintext <?phpfunction serverSt...   7.06.2005, 14:08:21
- - Gość_wrobel   Dopnę się do tematu. Też gram w tą grę i chce zr...   10.10.2007, 08:20:13
- - Gość_wrobel   Te porty by były podwójne DarkPartMu: Online/Off...   10.10.2007, 08:22:41


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 07:57