Mam kod który pobiera informacje z serwera OTS. Najpierw pobieram z bazy nazwe hosta dodaje ją do fsockopen(); i pobieram dane.
Strona się długo ładuje a jak już się załaduje to wyświetli wynik poprawny potem jak jeszcze raz ją odświeżę to wyświetli bez poprania wyników, albo wywali błąd...
Kod
  1. <?php
  2. for($i=0; $i < $db->_lacz->affected_rows; $i++)
  3. {
  4. echo '<tr>';
  5. $row = $sql->fetch_array();    
  6. $serwer_ip = $row[ip]; // - host np. azonera.com
  7. $serwer_port = $row[port]; //- port servera
  8. $info = chr(6).chr(0).chr(255).chr(255).'info';
  9. $sock = fsockopen ($serwer_ip,$serwer_port, $errno, $errstr, 1);
  10. if (!$sock) {
  11. $z =  "<img src=offline.gif>";
  12. }
  13. else
  14. {
  15. $z = "<img src=online.gif>";
  16. }
  17.  
  18. echo $info;
  19. fwrite($sock,$info);
  20. $data='';
  21. while (!feof($sock))
  22. {
  23. $data .= fgets($sock, 1024);
  24. }
  25. fclose($sock);
  26.  
  27. preg_match('/uptime="(d+)"/', $data, $matches);
  28. $h = floor($matches[1] / 3600);
  29. $m = floor(($matches[1] - $h*3600) / 60);
  30. <ul>
  31. </ul>';
  32. preg_match('/players online="(d+)" max="(d+)"/', $data, $matches);
  33.  
  34.    
  35.    echo '<tr>';
  36.    echo '<td>';
  37.    echo $z;
  38.    echo '</td>';
  39.    echo '<td><a href=?id='.$row[id].'>'.$row[name].'</a></td><td>'.$row[ip].'</td>';
  40.    echo '<td>Uptime: '.$h.'h '.$m.'m'.'</p></td>';
  41.    echo '<td>Players: '.$matches[1].' / '.$matches[2];
  42.    echo '</td><td>'.skroc($row[opis],20).'</td>';
  43.    echo '<td>'.$row[ver].'</td>';
  44. echo '</tr>';
  45. }
  46. echo '</table>';
  47. ?>

przed chwilą sprawdzałem to było ok ale jak jeszcze raz stronę odświeżyłem to wywaliło tonę błędów.
Ale to chyba już przez serwer bo chyba nie odpowiada widząc po komunikacie z fsockopen();
czasem jeszcze wyświetla mi taki błąd
Kod
PHP Warning:  fwrite(): supplied argument is not a valid stream resource in C:\Serv\www\OTS\lista.php on line 20

Gdzie jest błąd? Skrypt mam częściowo z internetu.
edit: poprawiłem linie błędu
w skrypcie w komentarzu pisało żeby do fsockopen(); podać ip serwera a sami mieli host ale to chyba nie robi różnicy


Z ładowaniem już sobie poradziłem.
Mam jeszcze taki problem że jak odpalam stronę to wszystko ok ładnie pięknie pokaże, a jak odświeżę stronę to juz danych na temat serwera nie pokaże uptime itp ;/