php script

Discussion in 'PHP' started by banned, 22 Nov 2006.

  1. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Вообщем мне нужна помощь :)

    Я делаю мониторинг кс серверов и у меня есть 2 скрипта!!!

    Вот первый(мониторинг онлайн):
    сам скрипт
    вид скрипта
    Вот второй(скрипт показывает кто в игре и сколько фрагов):
    сам скрипт
    вид скрипта

    Что-то я смог что-то у вас спрашиваю :)

    1) Вот вы видите что в первом скрипте под строкой "Сервер" идут ИП серверов и линки на них!!!

    Так вот....я хочу сделать так чтобы эти линки указывали на второй скрипт, а в то время как второй скрипт знал какой ип сервера ему нужно нам показать!!!

    Вообщем при нажатии на какото из серверов было видно кто играет на том или ином сервере!!!


    2) Хочу сделать так..чтобы на странице показывало максимум 10 серверов...если больше , то снизу появляется линк на след.страницу !!!

    3)И вот последний вопрос....можно ли мне както сократить свою работу???Не повторять все время скрипт для каждого сервера(как вы это видите в 1 скрипте), а мб както по другому можно!!!

    4)Хочу сделать так...чтобы на сайте была форма в которую ишут любые постеители IP:порт (сервера кс) и если этот сервер активен, то он добавляется в таблицу :)

    Вообщемто все :)Ух ужас сколько я хочу ))Спасибо
     
  2. TaNkist

    TaNkist Elder - Старейшина

    Joined:
    6 Apr 2006
    Messages:
    147
    Likes Received:
    47
    Reputations:
    19
    Поверхностно просмотрел твои скрипты:
    1)Меняем в первом скрипте
    Code:
    $url="<a href=http://".$server.">";
     на
    $url="<a href=http://lamak.info/monitoring/stats.php?server=".$server.">"; 
    
    Во стором скрипте:
    Code:
    if (!isset($server))
    {
    $server="89.169.79.236"; 
    }
    
    P.S.: может быть тут приведен некорректный код, т.к. PHP я знаю очень плохо
    2) Создай переменную счетчик.
    3) Вынеси код проверки сервера в отдельную функцию.
    4) Тогда создай текстовый файл с ip-шниками или заноси их БД.
     
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Респект тебе !!!!!!Спасибо

    Вот 2,3 и 4 конечно хотелось бы поподробнее:)
    Т.к. в пхп я не силен
     
    #3 banned, 23 Nov 2006
    Last edited: 23 Nov 2006
  4. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    А почему там именно тот ип???
    Чуть не доработан пхп код..... :(
     
  5. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    ХЗ... Он указан, как поумолчанию...
    Тоесть, если сервер не указан, то он будет таковым =)
     
  6. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    С этими строчками скрипт очень долго загружая страницу показал мне её пустую :)
     
  7. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Значит этот сервер хреновый =)
     
  8. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Вот все я сделал кроме 1 пункта!!!
    Казалось бы это так легко, но не получатся!!!
    Вот 1 скрипт :
    http://lamak.info/cs/
    Вот 2 скрипт:
    Code:
    <?php
    error_reporting(E_ALL);
    $server=$_GET['server'];
    if (!isset($server))
    {
    echo "Ошибка в просмотре статистики сервера";
    }
    $qw=chr(32);
    
    $fp = @fsockopen ("udp://".$server,27015);
    if (!$fp) return false;
    {
      fwrite($fp,"\377\377\377\377players".chr(10));
    //fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10));
        $st=fread($fp,1);
        $r=socket_get_status($fp);
        $r=$r["unread_bytes"];
        $st.=fread($fp,$r);
        fclose($fp);
        $playersn=ord(substr($st,5,1));
        $st=substr($st,6);
    }
    if ($playersn != 0 )
    {
     echo ("\n<meta http-equiv=\"content-type\" content=\"text/html; charset=windows-1251\">
    <title>Кто играет?</title>
    <body>
    <center>
    <table width=\"100\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\" align=\"left\" bgcolor=\"black\">
      <tr>
        <td colspan=\"3\"><center><font color=white>Сейчас на сервере $server : </font></center></td>
      </tr>
      <tr>
        <td bgcolor=\"#ffffff\" width=\"15\">N</td>
        <td bgcolor=\"#ffffff\" width=\"250\">Игрок:</td>
        <td bgcolor=\"#ffffff\">Kills:</td>
      </tr>\n");
    
            for ($i=1;$i<=$playersn;$i++){
                $n=ord(substr($st,0,1));
                $st=substr($st,1);
                $name=substr($st,0,strpos($st,chr(0)));
                $kills=ord(substr($st,strpos($st,chr(0))+1,1));
                if ($kills==255){$kills=-1;}
                if ($kills==254){$kills=-2;}
                if ($kills==253){$kills=-3;}
                if ($kills==252){$kills=-4;}
                $st=substr($st,strpos($st,chr(0)));
                $st=substr($st,9);
                echo("
    
    <tr>
        <td bgcolor=\"#ffffff\" width=\"15\">$n</td>
        <td bgcolor=\"#ffffff\" width=\"250\">$name</td>
        <td bgcolor=\"#ffffff\">$kills</td>
      </tr>\n");
            }
            echo("</table></body>"); 
    }
    else 
    echo "Ошибка в просмотре статистике сервера </html>";
    ?>
    
    Надо сделать так, чтобы во втором скрипте при stats.php?server=.$server.
    Показывалась статистика игроков ( т.е. 2 скрпит)
    Но показывает он почемуто половину серверов так, а др.половину не хочет !!!
    Сделайте плз как нужно ))Я даже заплачу
     
  9. bopoh13

    bopoh13 Elder - Старейшина

    Joined:
    31 Oct 2006
    Messages:
    195
    Likes Received:
    20
    Reputations:
    0
    Мда, замудрено тут у тебя. Где скрипт нашел-то?
    Заметь, ошибка не возникает, когда на сервере у тебя количесво играков равно 1. В другом случае возникает ошибка...

    Вот скажи: зачем тебе, например,
    эта переменная нигде не используется...

    Скрипт интересный, но чувствуется, куска не хватает. :rolleyes:

    ЗЫ: зачем исходные файлы удалил? Я не телепат!
     
  10. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Как приду...восстановлю
     
  11. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    PHP:
    set_time_limit(0); // or
    max_execution_rime(0);
    //Моя первая тема на ачате =))))))))))))))