Steam ID (32/64) Ajax checker

Тема в разделе "Программирование / Скриптинг", создана пользователем vectorserver, 11 окт 2012.

  1. vectorserver

    vectorserver ♥♥♥♥♥ by game.cominet.ru

    Сообщения:
    201
    Симпатии:
    243
    Написал очередной скриптец, в продолжении прошлого релиза для чекания SteamID в реальном времени с помощью jquery ajax + php + стили от Twitter Bootstrap

    Пример можно посмотреть у меня на обновленном сайте:
    http://game.cominet.ru/

    Внимание с 7й версии нужен Steam Api Key!
    API key регаем по адресу: http://steamcommunity.com/dev/apikey


    В переменную $apiKey вставляем свой Api Key.

    Форматы ввода:
    • STEAM_0:1:33155117
      [​IMG]
    • 76561198026575963
      [​IMG]
    • http://steamcommunity.com/profiles/76561198026575963
      [​IMG]

    код index.php:
    PHP:
    <!DOCTYPE html>
    <
    html>
        <
    head>
            <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <
    title>Пробей Steam game.cominet.ru</title>
            <
    link rel="stylesheet" href="css/bootstrap.css" type="text/css" />
            <
    script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
            <script type="text/javascript" src="js/jquery-ui-1.8.24.custom.min.js"></script>
            <script type="text/javascript" src="js/steam.js"></script>
        </head>
        <body>
            <div class="input-append">
              <input style="width: 590px;" id="steamvalue" name="steam_id" size="16" onfocus="this.value=''" value="http://steamcommunity.com/profiles/76561198026575963" type="text">
              <button id="Submit" class="btn btn-primary" type="button">Пробить</button>
            </div>
            <div id="loadSteam"></div>
        </body>
    </html>
    код steam.php:
    PHP:
    <?php
    //API key регаем по адресу: http://steamcommunity.com/dev/apikey
    $apiKey "CF1C3DD8519C1DC7039FC5AD138559C3";


    @
    $steam=$_GET['id']; 
    $html "";
    if (empty(
    $steam)) {
        echo 
    "Тут рыбы нет";
    } else if (
    preg_match('/^STEAM_0:[01]:[0-9]{2,12}$/'$steam)) {
        
        
    $steam64 st32to64($steam); //Плучаем SteamId 64
        
    $jsonURL =  $steam64;
        
    $steam32 $steam;
        
    } else if (
    preg_match('/^http:\/\/steamcommunity.com\/profiles\/\d{17}$/'$steam)) {
        
        
    preg_match('/^http:\/\/steamcommunity.com\/profiles\/(\d{17})$/'$steam,$steam);
        
        
    $steam32 st64to32($steam[1]); //Плучаем SteamId 32
        
    $jsonURL =  $steam[1];
        

    else if (
    preg_match('/^\d{17}$/'$steam)) {
        
        
    $steam32 st64to32($steam); //Плучаем SteamId 32
        
    $jsonURL =  $steam;
        
    } else {
        
    $html.=('<p style="color: #F26C4F;  font-weight: 700;  margin-left: 6px;">Не верные данные SteamID!<br>Примеры:<ul style="color: #F26C4F;  font-weight: 700;  margin-left: 6px;"><li>STEAM_0:1:33155117</li><li>http://steamcommunity.com/profiles/76561198026575963</li></ul></p>');
    }


    function 
    st32to64($steam_id)
    {
        list( , 
    $m1$m2) = explode(':'$steam_id3);
        list(
    $steam_cid, ) = explode('.'bcadd((((int) $m2 2) + $m1), '76561197960265728'), 2);
        return 
    $steam_cid;
    }

    function 
    st64to32($steam_cid)
    {
        
    $id = array('STEAM_0');
        
    $id[1] = substr($steam_cid, -11) % == 1;
        
    $id[2] = bcsub($steam_cid'76561197960265728');
        if(
    bccomp($id[2], '0') != 1)
        {
            return 
    false;
        }
        
    $id[2] = bcsub($id[2], $id[1]);
        list(
    $id[2], ) = explode('.'bcdiv($id[2], 2), 2);
        return 
    implode(':'$id);
    }

    if(
    $jsonURL){
        
    $json file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$apiKey&steamids=$jsonURL&format=json");
        
    $json json_decode($json,true);
        
    $userdata $json['response']['players'][0];


        if(empty(
    $userdata)){ 
        
    $html.="<p style=\"color: #F26C4F;  font-weight: 700;  margin-left: 6px;\"> Этот пользователь еще не настроил свой профиль сообщества Steam. <br> Если вы знакомы с ним, то посоветуйте ему/ей настроить свой профиль и начать играть!  </p>";
        } else {
        
        
        
    $json_vac file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerBans/v1/?key=$apiKey&steamids=$jsonURL&format=json");
        
    $json_vac json_decode($json_vac,true);
        
    $userVAC $json_vac['players'][0]['VACBanned'];
        
        
    $steamid $userdata['steamid'];
        
    $personaname     $userdata['personaname'];
        
    $profileurl     $userdata['profileurl'];
        
    $avatarfull     $userdata['avatarfull'];
        
    $timecreated     date("Y-m-d H:i",$userdata['timecreated']);
        
    $lastlogoff     date("Y-m-d H:i",$userdata['lastlogoff']);
        
    $loccountrycode = ($userdata['loccountrycode']) ? $userdata['loccountrycode'] : "скрыто";
        
    $realname         = ($userdata['realname']) ? "(".$userdata['realname'].")" "";
        
    $vacbanned         = ($userVAC) ? "<span style='color:red;'>есть нарушения</span>" "<span style='color:green;'>честен перед законом</span>";
        
        switch (
    $userdata['personastate']):
        case 
    0:
            
    $personastate    "Не в сети";
            break;
        case 
    1:
            
    $personastate    "Онлайн";
            break;
        case 
    2:
            
    $personastate    "Не беспокоить";
            break;
        case 
    3:
            
    $personastate    "Нет на месте";
            break;
        case 
    4:
            
    $personastate    "Спит";
            break;
        case 
    5:
            
    $personastate    "looking to trade";
            break;
        case 
    6:
            
    $personastate    "looking to play";
            break;
        endswitch;

            
    $html.="<table style=\"margin-top:-10px;\" class=\"table table-bordered table-striped\" cellpadding=\"1\" cellspacing=\"1\" style=\"width: 100%;\">";
            
    $html.="<tbody>";
            
    $html.="<td style=\"width:190px;\" align=\"left\" valign=\"top\" rowspan=\"8\"><img  class=\"kartinka\" src=\"{$avatarfull}\"></td>";
            
    $html.="<td valign=\"top\" align=\"left\"><strong>Никнейм:</strong> {$personaname} {$realname}</td>";
            
    $html.="</tr>";
            
    $html.="<tr>";
            
    $html.="<td valign=\"top\" align=\"left\"><strong>Профиль:</strong> <a target=\"_blank\" href=\"{$profileurl}\">{$profileurl}</a></td>";
            
    $html.="</tr>";
            
    $html.="<tr>";
            
    $html.="<td valign=\"top\" align=\"left\"><strong>SteamID32:</strong> {$steam32}</td>";
            
    $html.="</tr>";
            
    $html.="<tr>";
            
    $html.="<td valign=\"top\" align=\"left\"><strong>SteamID64:</strong> {$steamid}</td>";
            
    $html.="</tr>";
            
    $html.="<tr>";
            
    $html.="<td valign=\"top\" align=\"left\"><strong>Дата регистрации:</strong> {$timecreated}</td>";
            
    $html.="</tr>";
            
    $html.="<tr>";
            
    $html.="<td valign=\"top\" align=\"left\"><strong>VAC статус:</strong> {$vacbanned}</td>";
            
    $html.="</tr>";
            
    $html.="<tr>";
            
    $html.="<td valign=\"top\" align=\"left\"><strong>Локация:</strong> {$loccountrycode}</td>";
            
    $html.="</tr>";
            
    $html.="<tr>";
            
    $html.="<td valign=\"top\" align=\"left\"><strong>Последний визит:</strong> {$lastlogoff}</td>";
            
    $html.="</tr>";
            
    $html.="</tbody>";
            
    $html.="</table>";
            }
    }

    echo 
    $html;
    ?>

    Ну и конечно же для ленивых готовое решение во вложение:beer:

    У меня все можете пинать)))tbodyp style=
     

    Вложения:

    Последнее редактирование: 16 янв 2013
    Romeo98rus, The Night Fury, Novosib и 6 другим нравится это.
  2. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    Re: Steam ID Ajax cheker

    Что не так?
    [​IMG]
     
  3. ☆★☆БАТЯ☆★☆™

    ☆★☆БАТЯ☆★☆™

    Сообщения:
    2.585
    Симпатии:
    1.341
    Re: Steam ID Ajax cheker

    Отлично, осталось поправить орфографическую ошибку в скрипте и все :)
     
  4. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Re: Steam ID Ajax cheker

    Наверно то что у тебя профиль скрыт?
     
  5. vectorserver

    vectorserver ♥♥♥♥♥ by game.cominet.ru

    Сообщения:
    201
    Симпатии:
    243
    Re: Steam ID Ajax cheker

    Опс исправил)))
    [​IMG]
     
  6. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Re: Steam ID Ajax cheker

    vectorserver, Добавь условие ,если профиль скрыт то Выводило бы как нибудь "Профиль скрыт" и тд и тп
     
  7. vectorserver

    vectorserver ♥♥♥♥♥ by game.cominet.ru

    Сообщения:
    201
    Симпатии:
    243
    Re: Steam ID Ajax cheker

    Такое условие есть изначально, прото DoK_1997 зафотошопил данные, разве не видно?
     
  8. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Re: Steam ID Ajax cheker

    Нет.Это так и есть.
     

    Вложения:

    vectorserver нравится это.
  9. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Re: Steam ID Ajax cheker

    А если я открою профиль то
     

    Вложения:

  10. vectorserver

    vectorserver ♥♥♥♥♥ by game.cominet.ru

    Сообщения:
    201
    Симпатии:
    243
    Re: Steam ID Ajax cheker

    Все вижу, добавил в условие
    PHP:
    $privateState != 'private' && $privateState != 'friendsonly' && $privateState != 'friendsfriendsonly'  && $privateState != 'usersonly'
    [​IMG]
     
    Andrey и September нравится это.
  11. ☆★☆БАТЯ☆★☆™

    ☆★☆БАТЯ☆★☆™

    Сообщения:
    2.585
    Симпатии:
    1.341
  12. infernozet

    infernozet

    Сообщения:
    96
    Симпатии:
    18
    Re: Steam ID Ajax checker

    Табличная верстка - прошлый век
     
  13. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
    Re: Steam ID Ajax cheker

    Зачем? Во-первых пересчет идет из ID32 в ID64, во вторых короткая ссылка не у всех есть и она меняться может
     
  14. vectorserver

    vectorserver ♥♥♥♥♥ by game.cominet.ru

    Сообщения:
    201
    Симпатии:
    243
    Re: Steam ID Ajax checker

    Даааааа!?
    Где тут верстка то?? Ты вообще имеешь представление о верстке!?
    Запили для себя div-ми и радуйся(
    Тут важен функционал, думаю каждый под себя запилит как захочет.
     
  15. Beelzebub

    Beelzebub

    Сообщения:
    35
    Симпатии:
    11
    Re: Steam ID Ajax checker

    Молодец пиши по больше таких скриптов, а лучше для Sourcebans покупку и продажу онлайн напиши :) Тогда вообще молодчяга будешь.
     
  16. CTe6eJIeK_vRn

    CTe6eJIeK_vRn Супер-модератор

    Сообщения:
    2.014
    Симпатии:
    1.797
    Re: Steam ID Ajax checker

    vectorserver, можно будет добавить steamID64 / customURL ?
     
  17. vectorserver

    vectorserver ♥♥♥♥♥ by game.cominet.ru

    Сообщения:
    201
    Симпатии:
    243
    Re: Steam ID Ajax checker

    По свободней будет со временем, сделаю все варианты проверки steamID32, steamID64, community + попытаюсь по lastIP адресу определять.
     
    CTe6eJIeK_vRn нравится это.
  18. JumPixX

    JumPixX Админ. CSSRUS.ru

    Сообщения:
    94
    Симпатии:
    16
    Re: Steam ID Ajax checker

    Кто знает формулу из 76561197982730530 в STEAM_0:1:37033392 ??
     
  19. vectorserver

    vectorserver ♥♥♥♥♥ by game.cominet.ru

    Сообщения:
    201
    Симпатии:
    243
    CTe6eJIeK_vRn нравится это.
  20. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Че то как то не очень работает...
    залил содержимое архива в папку и всё.
    http://www.rgmix.eu/steam/