Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

gWoycer

Rekomendowane odpowiedzi

  • Odpowiedzi 117
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Ludzie użyjcie głowy.......

Jeśli otworzycie plik index.html jest on pusty dlatego nic wam nie wyskakuje .

Prawidłowa ścieżka to : twojadomena.pl/NAZWA_FOLDERU/banner.php

Opublikowano

Oglądam cały kod i dochodze do wniosku, że znam cały, dosłownie każdą część tym bardziej:

	if (!file_exists('src/info.tmp') || filemtime('src/info.tmp') + 1 * 30 < time()) {
	    $ts = new ts3admin($c['ts3']['host'], $c['ts3']['query_port'], 2);
	    $ts->connect();
	    $ts->login($c['ts3']['login'], $c['ts3']['password']);
	    $ts->setName($c['ts3']['name']);
	    $ts->selectServer($c['ts3']['login_port']);

	    
	    $cache = [];
	    $cache['server'] = $ts->getElement('data', $ts->serverInfo());
	    $cache['groups'] = $ts->getElement('data', $ts->serverGroupList());
	    $cache['clients'] = $ts->getElement('data', $ts->clientList('-ip -groups'));
	    @file_put_contents('src/info.tmp', json_encode($cache));
	} else {
	    $cache = file_get_contents('src/info.tmp');
	    $cache = json_decode($cache, true);
	}

Które kiedyś było pisane w mojej starszej wersji bannera...

 

Całościowo kod jest nawet okej, zapewne występuje tzw. "spam query", w momencie gdy przychodzi aktualizacja loguje się masa klientów query.

 

Jak na mpc to i tak dobrze wykonane, na czym się wzorowałeś?

Opublikowano

@gWoycer Spoko baner ale jak mówiłeś że wszystko się da to nie do końca bo nie zrobisz żeby baner do ciebie mówił na ts3 ;)

Opublikowano

Oglądam cały kod i dochodze do wniosku, że znam cały, dosłownie każdą część tym bardziej:

	if (!file_exists('src/info.tmp') || filemtime('src/info.tmp') + 1 * 30 < time()) {
	    $ts = new ts3admin($c['ts3']['host'], $c['ts3']['query_port'], 2);
	    $ts->connect();
	    $ts->login($c['ts3']['login'], $c['ts3']['password']);
	    $ts->setName($c['ts3']['name']);
	    $ts->selectServer($c['ts3']['login_port']);

	    
	    $cache = [];
	    $cache['server'] = $ts->getElement('data', $ts->serverInfo());
	    $cache['groups'] = $ts->getElement('data', $ts->serverGroupList());
	    $cache['clients'] = $ts->getElement('data', $ts->clientList('-ip -groups'));
	    @file_put_contents('src/info.tmp', json_encode($cache));
	} else {
	    $cache = file_get_contents('src/info.tmp');
	    $cache = json_decode($cache, true);
	}

Które kiedyś było pisane w mojej starszej wersji bannera...

 

Całościowo kod jest nawet okej, zapewne występuje tzw. "spam query", w momencie gdy przychodzi aktualizacja loguje się masa klientów query.

 

Jak na mpc to i tak dobrze wykonane, na czym się wzorowałeś?

 

Jak to na czym. Dostałem pewnego dnia ciąg znaków do rozkodowania. 

 

 
require_once 'config.php';
// Jeśli chcesz używać pogody to zmień na true
define('WEATHER_ENABLE', false);




header('Content-type: image/png');
$ip = $_SERVER['REMOTE_ADDR'];


date_default_timezone_set('Europe/Warsaw');


include_once 'lib/fate.php';
include_once 'lib/ts3admin.php';
include_once 'lib/date.php';


$date = getDateEx();
$hour = date('H:i');
$fate = getFateText();


$cache = '';


if (!file_exists('server_cache.tmp') || filemtime('server_cache.tmp') + $config['interval'] < time())
{
    $ts = new ts3admin($config['query']['host'], $config['query']['query_port'], 2);
    $ts->connect();
    $ts->login($config['query']['login'], $config['query']['password']);
    $ts->selectServer($config['query']['login_port']);
    $ts->setName('BannerService');
        
    $cache = [];
    $cache['server'] = $ts->getElement('data', $ts->serverInfo());
    $cache['clients'] = $ts->getElement('data', $ts->clientList('-ip -groups -times'));
    @file_put_contents('server_cache.tmp', json_encode($cache));
} else {
    $cache = file_get_contents('server_cache.tmp');
    $cache = json_decode($cache, true);
}


$im = imagecreatefrompng('images/background.png');
imagealphablending($im, true);


$color = [
    'white' => imagecolorallocate($im, 255, 255, 255)
];


$found = null;
foreach ($cache['clients'] as $client)
{
    if ($client['connection_client_ip'] == $ip)
    {
        $found = $client;
        break;
    }
}


function rightAlignText(&$im, $x, $y, $color, $fontSize, $font, $text, $angle = 0)
{
    $dimensions = imagettfbbox($fontSize, $angle, $font, $text);
    $textWidth = abs($dimensions[4] - $dimensions[0]);
    $x += imagesx($im) - $textWidth;
    
    imagettftext($im, $fontSize, $angle, $x, $y, $color, $font, $text);
}


rightAlignText($im, -40, 181, $color['white'], 131, 'fonts/Tahoma.ttf', $hour);
rightAlignText($im, -21, 290, $color['white'], 27, 'fonts/Tahoma.ttf', $date);
rightAlignText($im, -21, 255, $color['white'], 23, 'fonts/Tahoma.ttf', $fate);
if($found){
rightAlignText($im, -21, 220, $color['white'], 23, 'fonts/Tahoma.ttf', $found['client_nickname'].', witaj na '.$config['query']['server_name']);
}
imagettftext($im, 131, 0, 15, 181, $color['white'], 'fonts/Tahoma.ttf', (($cache['server']['virtualserver_clientsonline'] > 0) ? $cache['server']['virtualserver_clientsonline']: 'Failed'));
imagettftext($im, 64, 0, 13, 252, $color['white'], 'fonts/Tahoma.ttf', 'ONLINE');




if (null !== $found)
{
    
    $groups = explode(',', $found['client_servergroups']);
    $has_registered = false;
    $ignored_groups = [132, 133, 134, 150, 151, 152, 158, 173, 23, 24, 25, 180, 182, 26, 9, 10, 11, 140, 12, 13, 14];
    
    foreach ($groups as $g)
    {
        if (in_array($g, $ignored_groups)) {
            $has_registered = true;
            break;
        }
    }
    
    if (!$has_registered)
    {
        $toregister = $found['client_created'] - time();
        imagettftext($im, 23, 0, 15, imagesy($im) - 56, $color['white'], 'fonts/Tahoma.ttf', 'Witaj, ' . $found['client_nickname']);
        
        if ($toregister > 0) {
            $toregister = arraytimetostring($toregister);
            imagettftext($im, 23, 0, 15, imagesy($im) - 23, $color['white'], 'fonts/Tahoma.ttf', 'Możesz się zarejestrować za: ' . $toregister);
        } else {
            imagettftext($im, 23, 0, 15, imagesy($im) - 23, $color['white'], 'fonts/Tahoma.ttf', 'Możesz się zarejestrować wchodząc na odpowiedni kanał.');
        }
    }
}


imagepng($im);
imagedestroy($im);

Słaba robota. Lepiej zrób sobie by banner się raz na minutę / pół pobierał info będzie lepiej :> 

  • 3 tygodnie później...
Opublikowano

WItam, mam pewien problem.. wszystko ladnie zrobiłem lecz wyskakuje napis "niewlasciwy typ pliku" nie rozumiem.. bo wszystko zrobiłem zgodnie z instrukcjami. 

Opublikowano

Witam da się ustawić żeby brało konkretne kanały do liczby kanałów a nie wyświetlało wszystkie kanały i spacer'y?

  • 2 tygodnie później...
Opublikowano

­

 

Oglądam cały kod i dochodze do wniosku, że znam cały, dosłownie każdą część tym bardziej:

	if (!file_exists('src/info.tmp') || filemtime('src/info.tmp') + 1 * 30 < time()) {
	    $ts = new ts3admin($c['ts3']['host'], $c['ts3']['query_port'], 2);
	    $ts->connect();
	    $ts->login($c['ts3']['login'], $c['ts3']['password']);
	    $ts->setName($c['ts3']['name']);
	    $ts->selectServer($c['ts3']['login_port']);

	    
	    $cache = [];
	    $cache['server'] = $ts->getElement('data', $ts->serverInfo());
	    $cache['groups'] = $ts->getElement('data', $ts->serverGroupList());
	    $cache['clients'] = $ts->getElement('data', $ts->clientList('-ip -groups'));
	    @file_put_contents('src/info.tmp', json_encode($cache));
	} else {
	    $cache = file_get_contents('src/info.tmp');
	    $cache = json_decode($cache, true);
	}

Które kiedyś było pisane w mojej starszej wersji bannera...

 

Całościowo kod jest nawet okej, zapewne występuje tzw. "spam query", w momencie gdy przychodzi aktualizacja loguje się masa klientów query.

 

Jak na mpc to i tak dobrze wykonane, na czym się wzorowałeś?

 

KlassKai  widzę z CB taki z*******y programista ze dajesz "dziurawe" skrypty przez które można wyciągać dane o użytkownikach siedzących na ts ?

wystaczy dopisac do adresu src/info.tmp i macie dostep do adresow ip i innych informacji

 

Polecam wyjebać ten skrypt z forum bo dzieci bd później płakać że maja ddosy

Opublikowano

Otrzymałem informacje że z tego banneru łatwo można wyciągnąć passy query jak i informacje o użytkownikach. Dlatego proszę o jego naprawienie lub całkowite usunięcie go z forum.

 

@1373230489-U611928.pngPoker Face. @KlassKai.. Już wcześniej pisał że jest to jego stara wersja banneru więc nie ma to związku z tym co pisze teraz. A tak pozatym to on go nie udostępnił.

Opublikowano

­

 

 

KlassKai  widzę z CB taki z*******y programista ze dajesz "dziurawe" skrypty przez które można wyciągać dane o użytkownikach siedzących na ts ?

wystaczy dopisac do adresu src/info.tmp i macie dostep do adresow ip i innych informacji

 

Polecam wyjebać ten skrypt z forum bo dzieci bd później płakać że maja ddosy

 

Kolego zamieszczony tutaj urywek skryptu był jak to nazwę testowy. 

Używałem to tylko w wersji beta, teraz nie potrzebuję już takich rzeczy. :)

 

A to, że ktoś tego nie zauważył to jest jego wina.

Opublikowano

Wtedy funkcja, która identyfikuję Cię na podstawie Twojego adresu nie będzie działała.

logiczne ,ale dalej będziemy mieli baner który podaje użytkowników oraz aktualną godzine

Opublikowano

logiczne ,ale dalej będziemy mieli baner który podaje użytkowników oraz aktualną godzine

 

Osobiście mam o wiele już lepszy sposób na to wszystko, gdzie nie potrzebujemy zapisywać informacji w pliku.

 

Być może kiedyś ktoś na to wpadnie, a może to ja coś udostępnie.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...