Ü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:
adminRemélem nem hagytam ki semmit.