Steam ID (32/64) Ajax checker

vectorserver

♥♥♥♥♥ by game.cominet.ru
Сообщения
201
Реакции
246
Написал очередной скриптец, в продолжении прошлого релиза для чекания 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
    convex_20130116174151.png
  • 76561198026575963
    convex_20130116174504.png
  • http://steamcommunity.com/profiles/76561198026575963
    convex_20130116174311.png

код 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_id, 3);
	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, -1, 1) % 2 == 0 ? 0 : 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=
 

Вложения

  • Steam_ajax_cheker_v4.zip
    91.7 КБ · Просмотры: 35
  • Steam_ajax_cheker_v5.zip
    91.8 КБ · Просмотры: 8
  • Steam_ajax_cheker_v6.zip
    91.8 КБ · Просмотры: 17
  • Steam_ajax_cheker_v7.zip
    92.5 КБ · Просмотры: 102
Последнее редактирование:
Сообщения
2,587
Реакции
1,344
Re: Steam ID Ajax cheker

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

HooLIGUN

MatchMaking CS:S / RGMIX.ru
Сообщения
1,062
Реакции
267
Re: Steam ID Ajax cheker

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

vectorserver

♥♥♥♥♥ by game.cominet.ru
Сообщения
201
Реакции
246
Re: Steam ID Ajax cheker

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

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

HooLIGUN

MatchMaking CS:S / RGMIX.ru
Сообщения
1,062
Реакции
267
Re: Steam ID Ajax cheker

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

Вложения

  • Снимок.jpg
    Снимок.jpg
    16.6 КБ · Просмотры: 63

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424

vectorserver

♥♥♥♥♥ by game.cominet.ru
Сообщения
201
Реакции
246
Re: Steam ID Ajax checker

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

Beelzebub

Участник
Сообщения
35
Реакции
12
Re: Steam ID Ajax checker

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

CTe6eJIeK_vRn

Участник
Сообщения
2,114
Реакции
1,867
Re: Steam ID Ajax checker

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

vectorserver

♥♥♥♥♥ by game.cominet.ru
Сообщения
201
Реакции
246
Re: Steam ID Ajax checker

vectorserver, можно будет добавить steamID64 / customURL ?
По свободней будет со временем, сделаю все варианты проверки steamID32, steamID64, community + попытаюсь по lastIP адресу определять.
 

JumPixX

Админ. CSSRUS.ru
Сообщения
94
Реакции
14
Re: Steam ID Ajax checker

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

HooLIGUN

MatchMaking CS:S / RGMIX.ru
Сообщения
1,062
Реакции
267
И на вашем сайте
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    11.4 КБ · Просмотры: 51
Сверху Снизу