Проблема с таблицей php скрипта
#1

Всем добрый день вчера собрал API php скрипт онлайн игроков для samp но встала проблема с показанием онлайн игроков в таблице показывает тока 1 игрока а всех остальных за таблицей в может быть проблема может объясните нубу.


PHP код:
  if (!$player_list) { echo "<div style='text-align:center'><b>Нет игроков или сервер не отвечает</b></div></body></html>"; return; }
  if (isset(
$player_list[1]['score']))   { $monitor_show_score  1; }
  if (isset(
$player_list[1]['ping']))    { $monitor_show_ping   1; }
    echo 
"<style>
        #monittable{
            width: 600px;
            border: 1px solid rgb(0,0,0);
            margin-left: 0px; 
            border-collapse: collapse
        }
        #monittable td{border: 1px solid rgb(0,0,0);}
        #monittable tr{text-align: center;}
    </style>"
;
  echo 
"<table id=\"monittable\"><tr><td colspan=\"3\" bgcolor=\"#d2d2d2\"><b>".$data[hostname]."</b></td></tr>";
  echo 
"<tr><td colspan=\"3\" bgcolor=\"#ffffff\">Итого игроков онлайн: ".$data[players]."/".$data[maxplayers]."</td></tr>";
  echo 
"<tr bgcolor=\"#ffffff\"><td width=\"150px\">Псевдоним</td>";
  if (
$monitor_show_score ) { echo "<td width=\"150px\">Уровень</td>"; }
  if (
$monitor_show_ping)   { echo "<td width=\"150px\">Пинг</td></tr>"; }
  foreach (
$player_list as $key=>$player)
  {
    if (
function_exists("mb_convert_encoding")) 
    {
      
$player[name] = htmlspecialchars($player[name], ENT_QUOTES);
      
$player[name] = @mb_convert_encoding($player[name],"HTML-ENTITIES","auto");
    }
    else
    {
      
$player[name] = htmlentities($player[name], ENT_QUOTES);
    }
    echo 
"<tr bgcolor=\"#fff\"><td width=\"150px\">$player[name]</td>";
    if (
$monitor_show_score)  { echo "<td width=\"150px\">$player[score]</td>"; }
    if (
$monitor_show_ping)   { echo "<td width=\"150px\">$player[ping]</td></tr>"; }
    echo 
"</table>";
  }
?> 
Reply
#2

PHP код:
foreach ($player_list as $key => $player) {
    if (
function_exists("mb_convert_encoding")) {
        
$player['name'] = htmlspecialchars($player['name'], ENT_QUOTES);
        
$player['name'] = @mb_convert_encoding($player['name'], 'HTML-ENTITIES''auto');//убил бы за @
    
} else {
        
$player['name'] = htmlentities($player['name'], ENT_QUOTES);
    }
    echo 
'<tr bgcolor="#fff"><td width="150px">' $player['name'] . '</td>';
    if (
$monitor_show_score) {
        echo 
'<td width="150px">' $player['score'] . '</td>';
    }
    if (
$monitor_show_ping) {
        echo 
'<td width="150px">' $player['ping'] . '</td>';
    }
    echo 
'</tr>';
}
echo 
'</table>'
Reply
#3

Получилось спасибо большое.
Семь раз отмерь, один раз отрежь
Reply
#4

Еще вопрос как исправить php блок мониторинга ниже представленный код вставляю в php файл прописываю свой ip и мониторинга просто нету страничка пустая.

PHP код:
<?php
    $data 
monitor_samp("127.0.0.1"7777sampinfo); // измените ай-пи и порт на свой!!!!
    
$server_samp "<center>
    <b>"
.$data[hostname]."</b><br>
    "
.$data[ip].":".$data[qport]."<br> 
    <img src=\""
$img ."\" width=\"160\" height=\"120\" style=\"border:1px solid #000000;\"><br>  
    Игроков: <b>"
.$data[players]."/".$data[maxplayers]."</b><br>
    Карта: <b>"
.$data[mapname]."</b> 
<script language=\"JavaScript\">
<!--
function winop()
{
windop = window.open(\"engine/modules/monitoring/server_samp_players.php\",\"mywin\" ,\"height=400,width=250 ,scrollbars=yes\");
}
-->
</script>
<center>
<a href=\"javascript:winop();\"><b><font color=\"red\">Кто играет ?</font></b></a>
</center>"
;
  function 
monitor_samp($ip$qport$game$request)
  {
    
$fp = @fsockopen("udp://$ip"$qport$errno$errstr1);
    if (!
$fp) { return FALSE; } 
    
stream_set_timeout($fp10); stream_set_blocking($fptrue); 
    
$ip_array   explode("."$ip);
    
$challenge  'SAMP';
    
$challenge .= chr($ip_array[0]).chr($ip_array[1]).chr($ip_array[2]).chr($ip_array[3]);
         
$challenge .= chr($port      "\xFF");
         
$challenge .= chr($port >> "\xFF");
         if (
$request == "info")     { $challenge .= "i"; }
         if (
$request == "settings") { $challenge .= "r"; }
         if (
$request == "players")  { $challenge .= "d"; }
    
fwrite($fp$challenge);
    
$buffer fread($fp4096);
    
    
fclose($fp);
    if (!
trim($buffer)) { return FALSE; } 
    if (!
substr($buffer04) == "SAMP") { return FALSE; } 
    
$buffer substr($buffer11); 
    if (
$request == "info")
    {
      
$data['password']   = ord(substr($buffer01));
      
$data['players']    = ord(substr($buffer12));
      
$data['maxplayers'] = ord(substr($buffer32));
      
$buffer             =     substr($buffer5);    
      
$data_length        ord(substr($buffer04));   
            
$data['hostname']   =     substr($buffer4,  $data_length); 
      
$buffer             =     substr($buffer$data_length); 
      
$data_length        ord(substr($buffer04));           
             
$data['gametype']   =     substr($buffer4,  $data_length); 
      
$buffer             =     substr($buffer$data_length); 
      
$data_length        ord(substr($buffer04));           
             
$data['mapname']    =     substr($buffer4,  $data_length); 
            
$data['ip']              = $ip;
            
$data['qport']          = $qport
      return 
$data;
    }
    if (
$request == "settings")
    {
      
$setting_count ord(substr($buffer02));             
      
$buffer        =     substr($buffer2);                 
      
      if (
$setting_count 128) { return FALSE; }             
      
           for (
$i=0$i<$setting_count$i++)
           {
               if (!
$buffer) { return FALSE; }                        
               
$data_length  ord(substr($buffer01));            
               
$key          =     substr($buffer1,  $data_length); 
               
$buffer       =     substr($buffer$data_length);
               
               
$data_length  ord(substr($buffer01));            
               
$value        =     substr($buffer1,  $data_length); 
              
$buffer       =     substr($buffer$data_length); 
               
$setting[$key] = $value;
             }
             
             return 
$setting;
         }
    if (
$request == "players")
    {
      
$player_count ord(substr($buffer02));                          
      
$buffer       substr($buffer2);                                   
      if (
$player_count 128) { return FALSE; }                           
           for (
$i=1$i<=$player_count$i++)
           {
               if (!
$buffer) { return FALSE; }                                   
               
$player[$i]['pid']          = ord(substr($buffer01));          
               
$buffer                     =     substr($buffer1);              
               
$data_length                ord(substr($buffer01));           
               
$player[$i]['name']         =     substr($buffer1,  $data_length); 
               
$buffer                     =     substr($buffer$data_length);
        list(,
$player[$i]['score']) = unpack("s"substr($buffer04));    
               
$buffer                     =             substr($buffer4);     
               
$player[$i]['ping']         = ord(substr($buffer04));         
               
$buffer                     =     substr($buffer4);             
             }
             return 
$player;
    }
  }
?>
Reply
#5

Ты где это взял, данный код вообще не жизнеспособен, к тому же неполный?
Reply
#6

Подскажи мне рабочий код мониторинга
Reply
#7

Я похож на справочное бюро?
Поисковики для кого?
Reply
#8

Функция ещё куда не шло, но вывод полнейший бред. Забудь про этот код и делай с нуля, ну или ищи готовый.
Reply
#9

riddik123, я опять намекну на поиск по форуму. Я уже публиковал подходящий код с нужной модификацией.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)