1. GSManager
    1. Funktionen
    2. Unterstützte Spiele
    3. Neuigkeiten
    4. Statistiken
    5. Serverliste
  2. Lexikon
  3. Filebase
  4. Entwicklung
  5. Forum
    1. Dashboard
    2. Unerledigte Themen
  6. Web-Interface
  7. Artikel
  8. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Dateien
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. GSManager
  2. Forum
  3. Erweiterungen
  4. Anfragen

Check Ban / Already banned

  • shelly
  • 12. April 2014 um 03:29
Das Projekt GSManager (vormals ManuAdminMod) wurde am 01.01.2020 eingestellt - diese Internetpräsenz bleibt verfügbar, die Software wird aber nicht länger gepflegt. Vielen Dank für eure Unterstützung in den mehr als zehn vergangenen Jahren!
  • shelly
    Anfänger
    Reaktionen
    2
    Punkte
    572
    Beiträge
    100
    • 12. April 2014 um 03:29
    • #1

    This Plugin checks if a player is already in your mysql logban table.
    Found it today on pc pc. I think it is a modify of voices global ban plugin, so i added his credits.
    Should work xd

    Install:
    Open the check_ban.php
    Edit the $table = "xyz";
    put it into your plugins folder and restart mam.

    Original Author: http://www.manuadminmod.de/index.php/User/7-Voices/

    best regards,
    shelly

  • Voices
    Fortgeschrittener
    Reaktionen
    17
    Punkte
    1.742
    Trophäen
    2
    Beiträge
    331
    • 12. April 2014 um 13:07
    • #2
    Spoiler anzeigen
    PHP
    <?php
    /*
     * Author: Vo!ces
     * Xfire: voices95
     */
    
    
    
    
    // SET DEFAULT CVS
    $mod->setDefaultCV("shelly_ban", "enabled", 0);
    $mod->setDefaultCV("shelly_ban", "banreason", "Global Banned on our Servers");
    $mod->setDefaultCV("shelly_ban", "hostname", "localhost");
    $mod->setDefaultCV("shelly_ban", "user", "banlist");
    $mod->setDefaultCV("shelly_ban", "password", "securepassword");
    $mod->setDefaultCV("shelly_ban", "database", "banlist");
    $mod->setDefaultCV("shelly_ban", "table", "logKickBan");
    
    
    
    
    // REGISTER EVENTS
    $mod->registerEvent("playerJoined", "joined_hacker");
    
    
    
    
    function joined_hacker($guid) {
        global $mod;
        global $players;
    
    
    
    
        $db = mysql_connect($mod->getCV("shelly_ban", "hostname"),$mod->getCV("shelly_ban", "user"),$mod->getCV("shelly_ban", "password"))or die("Fehler");
        mysql_select_db($mod->getCV("shelly_ban", "database"));
        echo mysql_error();
        $result = mysql_query("SELECT guid FROM ".  $mod->getCV("shelly_ban", "table")." WHERE guid='". $guid ."' AND type ='ban'");
    
        $rowguid = mysql_num_rows($result);
    
    
    
    
        
        if($rowguid != "0") {
            $players[$guid]->ban($mod->getCV("shelly_ban", "banreason"));
        }
    
        mysql_close($db);
    }
    
    
    
    
    ?>
    Alles anzeigen


    So ergibt es mehr sinn allerdings brauchst du dafür eine spalte type in der mysqldb wo ban drin steht.


    Das komplettpaket sehe dann so aus:

    Spoiler anzeigen
    PHP
    <?php
    // SET DEFAULT CVS
    $mod->setDefaultCV("banlist", "enabled", 0);
    $mod->setDefaultCV("banlist", "banreason", "Global Banned on our Servers");
    $mod->setDefaultCV("banlist", "hostname", "localhost");
    $mod->setDefaultCV("banlist", "user", "banlist");
    $mod->setDefaultCV("banlist", "password", "securepassword");
    $mod->setDefaultCV("banlist", "database", "banlist");
    $mod->setDefaultCV("banlist", "table", "bans");
    
    
    
    
    try {
         $banlist = new banlist();
    }
    catch (Exception $e) {
        $logging->write(MOD_ERROR, "Banlist: " . $e->getMessage());
    }
    
    
    
    
    // REGISTER EVENTS
    $mod->registerEvent("playerJoined", "banlist_joined", $banlist);
    $mod->registerEvent("playerBanned", "banlist_ban", $banlist);
    
    
    
    
    class banlist {
        protected $mod;
        protected $players;
        protected $logging;
    
    
        public function __construct()
        {
            $this->mod = &$GLOBALS['mod'];
            $this->players = &$GLOBALS['players'];
            $this->logging = &$GLOBALS['logging'];
    
            $this->checkExtension();
            $this->checkTables();
       }
    
    
    
    
        private function checkExtension() {    
            if (!$this->mod->getCV("banlist", "enabled")) {
                return;
            }
            if (!extension_loaded('mysql')) {
                if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
                    @dl("php_mysql.dll");
                }else {
                    @dl("mysql.so");
                }
            }
            if (!function_exists("mysql_connect")) {
                throw new Exception("MySQL extension for PHP is not installed! Please install the MySQL extension to use this feature");
            }
        }    
    
        private function checkTables() {
            if (!$this->mod->getCV("banlist", "enabled")) {
                return;
            }
            $db = mysql_connect($this->mod->getCV("banlist", "hostname"),$this->mod->getCV("banlist", "user"),$this->mod->getCV("banlist", "password"))or die("Fehler");
            mysql_select_db($this->mod->getCV("banlist", "database"));
            mysql_query("CREATE TABLE IF NOT EXISTS `" . $this->mod->getCV("banlist", "table") . "` (
              `id` int(11) NOT NULL AUTO_INCREMENT,
              `player` text NOT NULL,
              `playerguid` varchar(32) NOT NULL,
              `reason` text NOT NULL,
              `kicker` text NOT NULL,
              `kickerguid` varchar(32) NOT NULL,
              `date` text NOT NULL,
              PRIMARY KEY (`id`)
            ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;");
            $this->logging->write(MOD_NOTICE, "Banlist: Checking if the Database (" . $this->mod->getCV("banlist", "table") . ") is valid and exists.");
            mysql_close($db);
        }
    
        public function banlist_joined($guid) {
            if (!$this->mod->getCV("banlist", "enabled")) {
                return;
            }
            $db = mysql_connect($this->mod->getCV("banlist", "hostname"),$this->mod->getCV("banlist", "user"),$this->mod->getCV("banlist", "password"))or die("Fehler");
            mysql_select_db($this->mod->getCV("banlist", "database"));
            $result = mysql_query("SELECT playerguid,reason FROM " . $this->mod->getCV("banlist", "table") . " WHERE playerguid='". $guid ."'");
            $rowguid = mysql_num_rows($result);
            $row = mysql_fetch_array($result);
    
            if($rowguid != "0") {
                $this->players[$guid]->ban($row['reason']);
                $this->logging->write(MOD_NOTICE, "Banlist: Autobanned " . $this->players[$guid]->getName() . " for Reason: " . $row['reason']);
            }
            mysql_close($db);
        }
    
        public function banlist_ban($params) {
            if (!$this->mod->getCV("banlist", "enabled")) {
                return;
            }
            list($player, $reason, $kicker) = $params;
    
            $db = mysql_connect($this->mod->getCV("banlist", "hostname"),$this->mod->getCV("banlist", "user"),$this->mod->getCV("banlist", "password"))or die("Fehler");
            mysql_select_db($this->mod->getCV("banlist", "database"));
            mysql_query("INSERT INTO " . $this->mod->getCV("banlist", "table") . " (player, playerguid, reason, kicker, kickerguid ,date) VALUES ('" . $this->mod->removecolor($players[$player]->getName()) . "','" . $players[$player] . "','" . $reason . "','" . $this->mod->removecolor($players[$kicker]->getName()) . "','" . $players[$kicker] . "','" . date("d.m.y H:i:s") . "')");
            mysql_close($db);
        }
    }
    ?>
    Alles anzeigen
  • Mirko911
    Entwickler
    Reaktionen
    165
    Punkte
    16.820
    Trophäen
    6
    Beiträge
    3.263
    Einträge
    11
    • 12. April 2014 um 13:49
    • #3

    sehe ich das richtig, oder kann ich über die Guid eine Mysql Injection durchführen?

    EDIT: @Voices kannst ja die neue DB Klasse dafür verwenden ;)

  • Dieses Thema enthält 3 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.

Benutzer online in diesem Thema

  • 1 Besucher
  1. Mitarbeiter
  2. Datenschutzerklärung
  3. Nutzungsbedingungen
  4. Impressum
  5. Kontakt
Community-Software: WoltLab Suite™