Sponsor-Board.de

Normale Version: RCON PW ändern über PHP
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag
Ich versuche momentan das RCON Passwort über PHP auszulesen und zu ändern.
Kann man das über eine MYSQL Datenbank machen?
Also in der cfg einen MYSQL befehl einfügen und über PHP einfach alles ändern?
Ich glaube eher, dass du die server.cfg auslesen musst, dann bearbeiten und wieder abspeicheren.

MySQL Befehle oder ähnliches kannst du in der Server.cfg nicht verwenden, da das dann nicht mehr korrekt ausgelesen werden würde.
Inwiefern meinst du auslesen?
du musst die Server.cfg öffnen also erst mal auf deinen pc speichern, dann machst du die server cfg mit dem Editor auf dan änderst du das Rcon pw, Speicherst die cfg neu ab und ladest sie wieder doch
Naja Datei öffnen durch PHP , dann ausgeben lassen und bearbeiten durch Texteditor und dann wieder abspeichern.

Hab hier was gefunden:

index.php

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>einfacher online editor</title>
</head>
<body>
<?php
// Variablen ordentlich initialisieren


if (!isset($_POST['text0'])) $_POST['text0'] = "";



    $fp = fopen("inhalt.xml", "r");
    if ($fp)
    {
        $_POST['text0'] = '';
        while(!feof($fp))
        {
            $_POST['text0'] .= fgets($fp);
        }
        fclose($fp);
    }



?>


Auszug aus der XML-Datei:<br>
<textarea name="text0" rows="10" cols="80"><?php echo $_POST['text0'] ?></textarea><br>

<A href="edit0.php">Diese Datei jetzt bearbeiten</A>


</body>
</html>


edit0.php

Code:
<?php
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Date in the past
header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
header ("Pragma: no-cache");                          // HTTP/1.0
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>online bearbeiten</title>
</head>
<body>
<?php
// Variablen ordentlich initialisieren


if (!isset($_POST['text'])) $_POST['text'] = "";



if (isset($_POST['submit']))
{
    // Text in Textdatei ablegen
    $fp = fopen("inhalt.xml", "w");
    if ($fp)
    {
        fputs($fp, $_POST['text']);
        fclose($fp);
        echo "XML-Datei wurde gespeichert. Bitte in der Anwendung online testen!<br><br>";
    } else {
        echo "Fehler: kann XML-Datei nicht öffnen<br>";
    }
  


    echo '<a href="'.$_SERVER['PHP_SELF'].'">Erneut bearbeiten<br></a>';

    echo '<a href="index.php">Zurück zur Auswahlseite</a>';


} else {
    $fp = fopen("inhalt.xml", "r");
    if ($fp)
    {
        $_POST['text'] = '';
        while(!feof($fp))
        {
            $_POST['text'] .= fgets($fp);
        }
        fclose($fp);
    }
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST" enctype="multipart/form-data">
<textarea name="text" rows="50" cols="100"><?php echo $_POST['text'] ?></textarea><br>
<input type="submit" name="submit" value="speichern">
</form>
<?php
}
?>
</body>
</html>


Quelle: [Link: Registrierung erforderlich]

Das wäre das Prinzip. Alle Angaben ohne Gewähr, weiß nicht ob das geht und/oder sicher ist.

Der Ablauf ist das man mit PHP erst mal eine FTP Verbindung zum GameServer herstellen muss, dann muss man den Pfad wechseln, sich dort dann die server.cfg ziehen, diese in PHP einlesen, das mittlerweile übergebene Passwort dann dort einfügen, es gibt verschiedene Möglichkeiten str_replace, RegEx oder einfach eine separate .cfg die einfach nur durch exec innerhalb der server.cfg ausgeführt wird, danach muss die Datei wieder geschlossen werden, auf den FTP geschoben werden und der GameServer benötigt einen Restart, schon ist es erledigt!

Ping11 z.B. bietet unfreiwillig eine API an, darüber kann man den Restart Befehl z.B. per file_get_contents um den Link zu schützen aufrufen und startet automatisch den Server damit neu.
Dann werde ich mich da heute mal ran geben.
Ich versuche momentan ein Server verleih Script zu schreiben.
Referenz-URLs