Szerző Téma: Alap szerver ellenőrző (API használatával)  (Megtekintve 1503 alkalommal)

Alap szerver ellenőrző (API használatával)
« Dátum: 2015. Március 01. - 18:05:38 »
+1 Show voters
Üdv!
Készítettem egy sima szerver ellenőrző kódot.
Ehhez egy un. SampQueryAPI-t használtam, ezt a szerver ellenőrző fájlja mellé kell betenni.
Egy fájlból áll az egész, kiírja a játékosok IDjét, nevét, pontjait és pingjét, a valamint a szerver adatait. Tervben van a játékosok / szerver adminisztrálása az RCON APIval.
Készítési idő: ~30perc
Készítő: én
Kód:
 

<style>
td {
border: 1px solid black;
}
tr {
vertical-align: top;
}
a { text-decoration: none; color: blue; }
a:hover { text-decoration: underline; color: red; }
</style>
<?php
require \'SampQueryAPI.php\';
session_start();
if(isset($_GET[\"reset\"])) {
unset($_SESSION[\"logged\"]);
unset($_SESSION[\"ip\"]);
unset($_SESSION[\"port\"]);
echo \'Reset! <a href=\"?\">reload</a>\';
die();
}
//
$server = null;
//login
if(!isset($_SESSION[\"logged\"])) {
echo \'<form method=\"POST\"><input type=\"text\" name=\"name\" placeholder=\"Felhasználónév\" required/><br><input type=\"password\" name=\"pass\" placeholder=\"Jelszó\" required/><br><input type=\"submit\"/></form>\';
if(isset($_POST[\"name\"])) {
   if($_POST[\"name\"] != \"admin\" || $_POST[\"pass\"] != base64_decode(\"YWRtaW4=\")) die(\"Rossz felhasználónév vagy jelszó!\");
   $_SESSION[\"logged\"] = true;
   header(\"Location: ?setserver\");
}
die();
}
//logout
if(isset($_GET[\"logout\"])) {
unset($_SESSION[\"logged\"]);
header(\"Location: ?\");
die();
}
//checking session server
if(isset($_SESSION[\"ip\"])) {
$server = @new SampQueryAPI($_SESSION[\"ip\"],$_SESSION[\"port\"]);
if(!$server->isOnline()) {
   echo \'A szerver nem elérhető!\';
   unset($_SESSION[\'ip\']);
   unset($server);
   $_SESSION[\"error\"] = \"A szerver nem elérhető!\";
   header(\"Location: ?setserver\");
   die();
}
}
//setting server
if(!isset($server)) {
if(isset($_SESSION[\"error\"])) { echo $_SESSION[\"error\"]; unset($_SESSION[\"error\"]); }
echo \'<form method=\"POST\" action=\"?setserver\">
   <input type=\"text\" name=\"ip\" placeholder=\"IP cím\" required /> :
   <input type=\"text\" name=\"port\" placeholder=\"PORT\" required /><br>
   <input type=\"submit\" name=\"setserver_submit\" value=\"Ellenőrzés\" /><br>
</form>\';
echo \'<a href=\"?logout>Kijelentkezés</a>\';
if(isset($_POST[\"setserver_submit\"])) {
   $_SESSION[\"ip\"] = $_POST[\"ip\"];
   $_SESSION[\"port\"] = $_POST[\"port\"];
   header(\"Location: ?\");
}
die();
}
//processing URL
if(!isset($_GET[\"opt\"]) || empty($_GET[\"opt\"])) {
header(\"Location: ?opt=main\");
die();
}
switch($_GET[\"opt\"]) {
case \'main\': main(); break;
case \'logout\': unset($_SESSION[\"logged\"]); unset($_SESSION[\"ip\"]); unset($_SESSION[\"port\"]); if(!isset($_SESSION[\"logged\"])) { header(\"Location: ?\");  } break;
case \'changeserver\': unset($_SESSION[\"ip\"]); unset($_SESSION[\"port\"]); header(\"Location: ?changeserver\"); break;
default: header(\"Location: ?opt=main\"); break;
}
//page
function main() {
global $server;
$info = $server->getInfo();
$rules = $server->getRules();
$players = $server->getDetailedPlayers();
echo \'<h1>\'.$info[\'hostname\'].\'</h1>\';
echo $info[\'password\'] ? \'<h4><font color=\"red\">A szerver le van jelszavazva!</font></h4>\' : \'<h4><font color=\"green\">A szerver nincs lejelszavazva!</font></h4>\';
echo \'<a href=\"?opt=changeserver\">Szerverváltás</a> | <a href=\"?opt=logout\">Kijelentkezés</a>\';
echo \'<table width=\"100%\"><tr>\';
echo \'<td width=\"50%\">\';
echo \'<table width=\"100%\">\';
   echo \'<tr><td>Szervernév</td><td>\'.$info[\'hostname\'].\'</td></tr>\';
   echo \'<tr><td>IP cím</td><td>\'.$_SESSION[\"ip\"].\':\'.$_SESSION[\"port\"].\'</td></tr>\';
   echo \'<tr><td>Pálya</td><td>\'.$info[\'mapname\'].\'</td></tr>\';
   echo \'<tr><td>Játékmód</td><td>\'.$info[\'gamemode\'].\'</td></tr>\';
   echo \'<tr><td>Játékosok</td><td>\'.$info[\'players\'].\'/\'.$info[\'maxplayers\'].\'</td></tr>\';
   echo \'<tr><td><hr></td><td><hr></td></tr>\';
   echo \'<tr><td>Verzió</td><td>\'.$rules[\'version\'].\'</td></tr>\';
   echo \'<tr><td>Időjárás ID</td><td>\'.$rules[\'weather\'].\'</td></tr>\';
   echo substr($rules[\'weburl\'],0,7);
   echo \'<tr><td>Weboldal</td><td><a href=\"http://\'.$rules[\'weburl\'].\'\" target=\"_blank\">\'.$rules[\'weburl\'].\'</a></td></tr>\';
   echo \'<tr><td>Idő</td><td>\'.$rules[\'worldtime\'].\'</td></tr>\';
echo \'</table>\';
echo \'</td>\';
// Playerek
echo \'<td>\';
echo \'<table width=\"100%\"><th>ID</th><th>Név</th><th>Pont</th><th>Ping</th>\';
foreach($players as $player) {
   echo \'<tr><td>\'.$player[\'playerid\'].\'</td><td>\'.$player[\'nickname\'].\'</td><td>\'.$player[\'score\'].\'</td><td>\'.$player[\'ping\'].\'</td></tr>\';
}
echo \'</table>\';
echo \'</td>\';
echo \'</tr></table>\';
}

 
A használatához bejelentkezés szükséges, az alap jelszó + felhasználónév: admin
Remélem nem hagytam ki semmit.

Alap szerver ellenőrző (API használatával)
« Válasz #1 Dátum: 2015. Március 01. - 18:15:07 »
0 Show voters
Profi munka! Teljes gratulálcióm hozzá.

Alap szerver ellenőrző (API használatával)
« Válasz #2 Dátum: 2015. Március 01. - 18:17:15 »
0 Show voters
Köszi :D Az, hogy profi azt kétlem, de szerintem nem lett rossz. Itt például egyátalán nem a designon van a hangsúly :D De ha lesz következő verziója akkor megpróbálok valami alap kis designt hozzárakni :D

Alap szerver ellenőrző (API használatával)
« Válasz #3 Dátum: 2015. Március 01. - 18:19:30 »
0 Show voters
De ha lesz következő verziója akkor megpróbálok valami alap kis designt hozzárakni :D[/quote]
Hát... akkor már a profibbnál is profibb munka lesz! :D

Alap szerver ellenőrző (API használatával)
« Válasz #4 Dátum: 2015. Március 02. - 19:08:29 »
0 Show voters
Szép lett blackdog ;)

Alap szerver ellenőrző (API használatával)
« Válasz #5 Dátum: 2015. Március 03. - 07:14:41 »
0 Show voters
Köszi :p

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal