Hakens | 2017-10-04 07:57:45 UTC | #1
Witam, mam pytanie odnośnie banera dokładnie chodzi mi o
https://forum.lvlup.pro/t/ts3-gotowy-interaktywny-baner-teamspeak/3315
korzysta on z ts3 php framework
Pytanie brzmi w jaki sposób mogę wyświetlać tekst na banerze tylko danej grupie.
Liste użytkowników mam pobraną, używam foreach
próbowałem używać i session i cookie, ale dalej nie pokazuje się na banerze prawidłowo
jakieś sugestie, propozycje? Nie chodzi mi o podanie kodu(chyba że przykład), tylko proszę o wskazanie na czym się skupić aby to działało, dodam że zaczynam z php, podstawy znam.
Anno | 2017-10-04 12:31:43 UTC | #2
if($ip_ts3 == $ip_www)
{
if($client_rang == $ranga)
{
echo 'masz range';
}
else
{
echo 'nie masz rangi';
}
}
Tutaj masz na jakiej zasadzie to działa
Jebanany | 2017-10-17 18:57:23 UTC | #3
Dana grupa musi być w liście grup użytkownika, framework pobiera to jako listę po przecinku, więc musimy ją zamienić na array przez funkcję explode tj.
Po pierwsze, należy sprawdzić czy jest użytkownik o takim IP na serwerze, a po drugie, sprawdzić czy ma takie grupy, jakich wymagasz (podobnie, jak w poście powyżej - zasada działania taka właśnie jest).
IP sprawdzasz np. tak:
foreach($ts_users as $user){
if($user['connection_client_ip'] == $_SERVER['REMOTE_ADDR']){
if(in_array('ID_GRUPY', explode(',', $user['client_servergroups'])){
// jeśli ID_GRUPY jest w grupach usera, to wykonuje ten warunek
}
break; //przerywa foreach, aby nie szukać dalej
}
}
Tak to mniej więcej wygląda.
Hakens | 2017-10-14 00:14:10 UTC | #4
Dzięki, udało się po wielu trudach. Pokazywanie wiadomości dla niezarejestrowanych działa, lecz tylko wtedy kiedy if($need_ts) jest nie używany, lub kiedy odstęp łączenia się z serwerem i pobierania danych jest ustawiony na 0, lecz wtedy query wchodzi na serwer co sekundę, jest jakiś sposób żeby pokazywało się to prawidłowo a query nie wchodziło parę razy na sekundę?
Anno | 2017-10-14 06:34:07 UTC | #5
cache’ujesz dane :smile:
Hakens | 2017-10-14 12:36:29 UTC | #6
W jaki sposób bo przy próbie zrobienia
$stats['client']= $ts->clientList();
do pliku dodają mi się same id i klamry;
Zaś kiedy daje
$stats['client']=$ts->request("clientlist -ip -groups -client_nickname")->toList();
to są wszystkie dane ale nie działa.
Aylin | 2018-06-12 20:01:14 UTC | #7