Пример #1
0
/** This function sets the changed data specified by the user.
 */
function profile_update($db_login)
{
    global $params, $db;
    $playerID = $params->SESSION->player->playerID;
    $data = $params->POST->data;
    $password = $params->POST->password;
    // list of fields, that should be inserted into the player record
    $fields = array("origin", "icq", "avatar", "description", "template", "language", "gfxpath", "email2");
    // validate language code
    $uaLanguageNames = LanguageNames::getLanguageNames();
    if (!array_key_exists($data['language'], $uaLanguageNames)) {
        unset($data['language']);
    }
    // recode description
    $data['description'] = nl2br($data['description']);
    if ($set = db_makeSetStatementSecure($data, $fields)) {
        $query = sprintf('UPDATE Player SET %s WHERE playerID = %d', $set, $playerID);
        if (!$db->query($query)) {
            return _('Die Daten konnten gar nicht oder zumindest nicht vollständig aktualisiert werden.');
        }
    }
    // ***** now update the password, if it is set **** **************************
    if (strlen($password['password1'])) {
        // typo?
        if (strcmp($password['password1'], $password['password2']) != 0) {
            return _('Das Paßwort stimmt nicht mit der Wiederholung überein.');
        }
        // password too short?
        if (!preg_match('/^\\w{6,}$/', unhtmlentities($password['password1']))) {
            return _('Das Passwort muss mindestens 6 Zeichen lang sein!');
        }
        // set password
        $query = sprintf("UPDATE Login SET password = '******' WHERE LoginID = %d", $password['password1'], $playerID);
        if (!$db_login->query($query)) {
            return _('Die Daten konnten gar nicht oder zumindest nicht vollständig aktualisiert werden.');
        }
    }
    return _('Die Daten wurden erfolgreich aktualisiert.');
}
Пример #2
0
/** This function sets the changed data specified by the user.
 */
function profile_processUpdate($playerID, $data, $password, $cave_prio, $db_game, $db_login)
{
    // list of fields, that should be inserted into the player record
    $fields = array("sex", "origin", "age", "icq", "avatar", "description", "template", "show_unqualified", "show_ticker", "show_returns", "urlaub", "gfxpath", "email2");
    // ADDED by chris--- for ticker: show_ticker
    // ADDED by chris--- for returns: show_returns
    // ADDED by chris--- for urlaub: urlaub
    // ADDED by chris--- for urlaubmodus -----------------------------------
    if ($data['urlaub'] == 1) {
        // check ob Clan im Krieg
        $sql = "SELECT tribe FROM Player WHERE playerID = " . $playerID;
        if (!($result = $db_game->query($sql))) {
            return 8;
        }
        if (!$result->isEmpty()) {
            // Spieler hat nen clan
            $game = $result->nextRow();
            $tribe = $game['tribe'];
            $sql = "SELECT relationType FROM relation WHERE tribe = '" . $tribe . "'";
            if (!($result = $db_game->query($sql))) {
                return 8;
            }
            if (!$result->isEmpty()) {
                // Clan hat Beziehungen
                $war = FALSE;
                while ($game = $result->nextRow()) {
                    if ($game['relationType'] == 2) {
                        $war = TRUE;
                    }
                }
                // end while
                if ($war) {
                    return 6;
                }
            }
            // end if beziehung
        }
        // end if clan
        // check ob Spieler kürzlich im Urlaub
        // Username holen
        $sql = "SELECT Name FROM Player WHERE playerID = " . $playerID . " LIMIT 0,1";
        if (!($result = $db_game->query($sql))) {
            return 8;
        }
        if ($result->isEmpty()) {
            return 8;
        }
        $game = $result->nextRow();
        $sql = "SELECT urlaub_begin, urlaub_end FROM Login WHERE user = '******'Name'] . "'";
        if (!($result = $db_login->query($sql))) {
            return 8;
        }
        if ($result->isEmpty()) {
            return 8;
        }
        $login = $result->nextRow();
        $urlaub_begin = $login['urlaub_begin'];
        $urlaub_end = $login['urlaub_end'];
        $jetzt = time();
        $diff = $urlaub_end - $urlaub_begin;
        $sperre = $jetzt + $diff;
        if ($jetzt < $sperre) {
            return 7;
        } else {
            // Alles ok, aktiviere Urlaubsmodus
            // Alle Siedlungen des Spieler auf urlaub = 1 setzen, protection_end auf jetzt+1monat, evt. secure_cave ändern? Falls ja muß der vorige Zustand gespeichert werden
            $sql = "UPDATE Cave SET secureCave_was = secureCave WHERE playerID = " . $playerID;
            if (!$db_game->query($sql)) {
                return 8;
            }
            $endtime = date("YmdHis", time() + 31 * 24 * 60 * 60);
            $sql = "UPDATE Cave SET urlaub = 1, protection_end = " . $endtime . ", secureCave = 1 WHERE playerID = " . $playerID;
            if (!$db_game->query($sql)) {
                return 8;
            }
            // Player Tabelle updaten
            $sql = "UPDATE Player SET urlaub = 1 WHERE playerID = " . $playerID;
            if (!$db_game->query($sql)) {
                return 8;
            }
            // Username holen
            $sql = "SELECT Name FROM Player WHERE playerID = " . $playerID . " LIMIT 0,1";
            if (!($result = $db_game->query($sql))) {
                return 8;
            }
            if ($result->isEmpty()) {
                return 8;
            }
            $game = $result->nextRow();
            // Login Tabelle updaten
            $sql = "UPDATE Login SET urlaub = 1, urlaub_begin = " . time() . ", urlaub_end = 0 WHERE user = '******'Name'] . "'";
            if (!$db_login->query($sql)) {
                return 8;
            }
        }
    }
    // END urlaubsmodus ----------------------------------------------
    // first update data
    $data['description'] = nl2br($data['description']);
    if ($set = db_makeSetStatementSecure($data, $fields)) {
        $query = "UPDATE Player SET {$set} WHERE playerID = '{$playerID}'";
        if (!$db_game->query($query)) {
            return 2;
        }
    }
    // now update the password, if it is set
    if (strlen($password['password1'])) {
        // typo?
        if (strcmp($password['password1'], $password['password2']) != 0) {
            return 1;
        }
        // password too short?
        if (strlen($password['password1']) <= 4) {
            return 3;
        }
        // set password
        $query = "UPDATE Login SET password = '******'password1']}' " . "WHERE LoginID = '{$playerID}'";
        if (!$db_login->query($query)) {
            return 4;
        }
    }
    // ADDED by chris--- for cave sorting
    // Processing the cave priorities
    $meineHoehlen = getCaves($playerID);
    if (sizeof($meineHoehlen) > 1) {
        // We should check the values here
        foreach ($cave_prio as $key => $value) {
            if ($value > 10 || $value < 0) {
                return 5;
            }
            // Wrong value
            // if we have 2 or more of the same values here
            // it doesnt matter cause it doesnt affect the game
            // the priority is undefined then
        }
        // Updating the table
        foreach ($cave_prio as $key => $value) {
            $query = "UPDATE cave SET priority = " . $value . " WHERE caveID = " . $key . " AND playerID = " . $playerID;
            if (!$db_game->query($query)) {
                return 2;
            }
            // Database error
        }
    }
    // end if
    return 0;
}
Пример #3
0
function tribe_processAdminUpdate($leaderID, $tag, $data, $db)
{
    // list of fields, that should be inserted into the player record
    if (!tribe_isLeaderOrJuniorLeader($leaderID, $tag, $db)) {
        return 2;
    }
    if (!tribe_validatePassword($data["password"])) {
        return 2;
    }
    $fields = array("name", "password", "description");
    // first update data
    $data['description'] = nl2br($data['description']);
    if ($set = db_makeSetStatementSecure($data, $fields)) {
        if (!$db->query("UPDATE Tribe " . "SET " . $set . " " . "WHERE tag = '{$tag}'")) {
            return 2;
        }
    }
    return 0;
}
Пример #4
0
function tribe_processAdminUpdate($leaderID, $tag, $data, $db)
{
    // list of fields, that should be inserted into the player record
    $fields = array("name", "password", "description");
    // first update data
    $data[description] = nl2br($data[description]);
    if ($set = db_makeSetStatementSecure($data, $fields)) {
        if (!$db->query($query = "UPDATE Tribe " . "SET " . $set . " " . "WHERE tag = '{$tag}' " . "AND leaderID = '{$leaderID}'")) {
            return 2;
        }
    }
    return 0;
}