Пробей - STEAM_ID

Тема в разделе "Статьи и мануалы", создана пользователем vectorserver, 11 сен 2012.

  1. vectorserver

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

    Сообщения:
    201
    Симпатии:
    243
    И так решу поделится кодом для просмотра странички пользователя STEAM.
    Все просто вставляете себе код на сайт и радуетесь, думаю стили прикрутите сами)))

    В планах сделать вывод на ajax с выводом фотки и тп прямо на сайте (если руки дойдут:-D)

    И так сам код:
    PHP:
    <?php 
    function SteamID2CommunityID($steamid

        
    $parts explode(':'str_replace('STEAM_''' ,$steamid)); 
        
    $url bcadd(bcadd('76561197960265728'$parts['1']), bcmul($parts['2'], '2'));
        if(
    $steamid ||$steamid == "STEAM_0:1:33155117"){
        return 
    header('Location: http://steamcommunity.com/profiles/'.$url.''); 
        }

    @
    SteamID2CommunityID($_POST['steam_id']);
    ?>
    <form target="_blank" action="" method="POST">
        <div class="input-append">
        <input style="width:141px;" type="text" name="steam_id" size="16" onfocus="this.value=''" value="STEAM_0:1:33155117" >
        <button value="GO" name="Submit" type="submit" class="btn">GO</button>
        </div>
    </form>
    [​IMG]
    Пример: http://game.cominet.ru/#op
     
    legend1998, KorDen, Серый™ и ещё 1-му нравится это.
  2. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    Зачем для этого php? На js не проще?
     
  3. vectorserver

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

    Сообщения:
    201
    Симпатии:
    243
    А я ХЗ как на JS Сложить 2 числа произвольной точности))) Думаю)))
     
  4. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    124
    А можно сделать,чтобы заходя по ссылке вида site.ru/STEAM_0:1:1111
    перекидывало на сам профиль?
     
  5. fallen1994

    fallen1994

    Сообщения:
    2.347
    Симпатии:
    544
    Вектор, у тебя глюк на сайте твой код словил "Array ( [0] => )" убери
     
  6. KorDen

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

    Сообщения:
    2.194
    Симпатии:
    1.398
    Как нечего делать, пост на гет и без функции, в общем еще проще

    PHP:
    <?php
    $steamid
    =$_GET['id'];
    $parts explode(':'str_replace('STEAM_''' ,$steamid));
    $url bcadd(bcadd('76561197960265728'$parts['1']), bcmul($parts['2'], '2'));
    return 
    header('Location: http://steamcommunity.com/profiles/'.$url.'');
    ?>
    Запрос типа http://game.bks-tv.ru/_others/steamid.php?id=STEAM_0:0:29393893 и перекинет на профиль.

    Автору спасибо за скрипт, как раз хотел что-то подобное воплотить, но что-то я не разобрался как нормально вычислять ID (Пока еще не слишком уверенно знаю PHP чтобы делать что-то толковое самодельное без копипаста). А можно написать обратное? Тоесть чтобы по 64ому давало игровой?
     
  7. vectorserver

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

    Сообщения:
    201
    Симпатии:
    243
    Дык это еще проще)))
    PHP:
    <?php 
    $steamid64
    =$_GET['id64']; 
    return 
    header('Location: http://steamcommunity.com/profiles/'.$steamid64.''); 
    ?>
    твой_сайт/?id64=76561197966896751
     
  8. KorDen

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

    Сообщения:
    2.194
    Симпатии:
    1.398
    Перечитай еще раз... "по 64ому давало игровой" - то есть не перекидывало на профиль, а выводило 32ой (STEAM_0:0:0000)
     
  9. vectorserver

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

    Сообщения:
    201
    Симпатии:
    243
    PHP:
    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);
    }