• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Login problems -Invalid Password-

trik

New Member
Joined
Sep 30, 2009
Messages
6
Reaction score
0
Hello guys!

I've a little problem trying to login in my own server.

The server is working properly (I think) it says me that's online and everything seems to be OK. I'm using XAMPP with mysql.

The problem is when I'm trying to login with 1/1 (Acc manager) and with another account created by me I get an "Incorrect Password" message. I've been trying to opening ports and looking for any error on my config.lua but I didn't find anything.

I'll be very grateful if someone helps me :)

Thanks.
 
Why in config.lua - you have
encryption = "sha1" and you use "plain"
or made by have website, you need edit config-and-functions-php for works
 
why you use sqlite <-
sqlite need use plain not sha1
changed in your config
sha1 for plain

Lua:
encryptionType = "sha1"
for
Lua:
encryptionType = "plain"
 
why you use sqlite <-
sqlite need use plain not sha1
changed in your config
sha1 for plain

Lua:
encryptionType = "sha1"
for
Lua:
encryptionType = "plain"

I'm using Mysql.

Here's my config.lua
I change my ip and phpmyadmin pass to ***

Lua:
accountManager = true
	namelockManager = true
	newPlayerChooseVoc = false
	newPlayerSpawnPosX = 1298
	newPlayerSpawnPosY = 897
	newPlayerSpawnPosZ = 7
	newPlayerTownId = 1
	newPlayerLevel = 8
	newPlayerMagicLevel = 0
	generateAccountNumber = false


	useFragHandler = true
	redSkullLength = 1 * 24 * 60 * 60
	blackSkullLength = 3 * 24 * 60 * 60
	dailyFragsToRedSkull = 25
	weeklyFragsToRedSkull = 100
	monthlyFragsToRedSkull = 300
	dailyFragsToBlackSkull = 35
	weeklyFragsToBlackSkull = 150
	monthlyFragsToBlackSkull = 350
	dailyFragsToBanishment = 60
	weeklyFragsToBanishment = 200
	monthlyFragsToBanishment = 400
	blackSkulledDeathHealth = 40
	blackSkulledDeathMana = 0
	useBlackSkull = true
	advancedFragList = false


	notationsToBan = 3
	warningsToFinalBan = 4
	warningsToDeletion = 5
	banLength = 2 * 24 * 60 * 60
	killsBanLength = 2 * 24 * 60 * 60
	finalBanLength = 30 * 24 * 60 * 60
	ipBanishmentLength = 3 * 24 * 60 * 60
	broadcastBanishments = true
	maxViolationCommentSize = 200
	violationNameReportActionType = 2
	autoBanishUnknownBytes = false


	worldType = "open"
	protectionLevel = 70
	pvpTileIgnoreLevelAndVocationProtection = true
	pzLocked = 60 * 1000
	huntingDuration = 60 * 1000
	criticalHitChance = 7
	criticalHitMultiplier = 1
	displayCriticalHitNotify = false
	removeWeaponAmmunition = false
	removeWeaponCharges = true
	removeRuneCharges = true
	whiteSkullTime = 5 * 60 * 1000
	noDamageToSameLookfeet = false
	showHealingDamage = true
	showHealingDamageForMonsters = false
	fieldOwnershipDuration = 5 * 1000
	stopAttackingAtExit = false
	loginProtectionPeriod = 10 * 1000
	deathLostPercent = 10
	stairhopDelay = 1 * 1000
	pushCreatureDelay = 1 * 1000
	deathContainerId = 1987
	gainExperienceColor = 215
	addManaSpentInPvPZone = true
	squareColor = 0
	allowFightback = true
	fistBaseAttack = 7


	worldId = 0
	ip = "****"
	loginPort = 7171
	gamePort = 7172
	loginTries = 10
	retryTimeout = 5 * 1000
	loginTimeout = 60 * 1000
	maxPlayers = 1000
	motd = "Welcome to the old Veterana server!"
	displayOnOrOffAtCharlist = false
	onePlayerOnlinePerAccount = true
	allowClones = false
	serverName = "OldVeterana"
	loginMessage = "Welcome to Veterana!"
	statusTimeout = 5 * 60 * 1000
	replaceKickOnLogin = true
	forceSlowConnectionsToDisconnect = false
	loginOnlyWithLoginServer = false
	premiumPlayerSkipWaitList = false


	sqlType = "mysql"
	sqlHost = "localhost"
	sqlPort = 3306
	sqlUser = "root"
	sqlPass = "*****"
	sqlDatabase = "otserver"
	sqlFile = "mysqlCopy.sql"
	sqlKeepAlive = 0
	mysqlReadTimeout = 10
	mysqlWriteTimeout = 10
	encryptionType = "sha1"


	deathListEnabled = true
	deathListRequiredTime = 1 * 60 * 1000
	deathAssistCount = 19
	maxDeathRecords = 5


	ingameGuildManagement = false
	levelToFormGuild = 8
	premiumDaysToFormGuild = 0
	guildNameMinLength = 4
	guildNameMaxLength = 20


	highscoreDisplayPlayers = 15
	updateHighscoresAfterMinutes = 60


	buyableAndSellableHouses = true
	houseNeedPremium = true
	bedsRequirePremium = true
	levelToBuyHouse = 150
	housesPerAccount = 1
	houseRentAsPrice = false
	housePriceAsRent = false
	housePriceEachSquare = 1000
	houseRentPeriod = "never"
	houseCleanOld = 0
	guildHalls = false


	timeBetweenActions = 200
	timeBetweenExActions = 1000
	hotkeyAimbotEnabled = true


	mapName = "veterana.otbm"
	mapAuthor = "Gerard"
	randomizeTiles = true
	storeTrash = true
	cleanProtectedZones = true
	mailboxDisabledTowns = ""


	defaultPriority = "high"
	niceLevel = 5
	coresUsed = "-1"


	startupDatabaseOptimization = true
	updatePremiumStateAtStartup = true
	confirmOutdatedVersion = false

	
	formulaLevel = 5.0
	formulaMagic = 1.0
	bufferMutedOnSpellFailure = false
	spellNameInsteadOfWords = false
	emoteSpells = true


	allowChangeOutfit = true
	allowChangeColors = true
	allowChangeAddons = true
	disableOutfitsForPrivilegedPlayers = false
	addonsOnlyPremium = true


	dataDirectory = "data/"
	logsDirectory = "data/logs/"
	bankSystem = true
	displaySkillLevelOnAdvance = false
	promptExceptionTracerErrorBox = true
	maximumDoorLevel = 500
	maxMessageBuffer = 4


	separateVipListPerCharacter = false
	vipListDefaultLimit = 20
	vipListDefaultPremiumLimit = 100


	saveGlobalStorage = true
	useHouseDataStorage = false
	storePlayerDirection = false


	checkCorpseOwner = true
	monsterLootMessage = 3
	monsterLootMessageType = 25


	ghostModeInvisibleEffect = false
	ghostModeSpellEffects = true


	idleWarningTime = 440 * 60 * 1000
	idleKickTime = 440 * 60 * 1000
	reportsExpirationAfterReads = 1
	playerQueryDeepness = 2
	tileLimit = 5
	protectionTileLimit = 5
	houseTileLimit = 5


	freePremium = false
	premiumForPromotion = true


	blessings = true
	blessingOnlyPremium = true
	blessingReductionBase = 30
	blessingReductionDecrement = 5
	eachBlessReduction = 8


	experienceStages = true
	rateExperience = 5.0
	rateExperienceFromPlayers = 0
	rateSkill = 30.0
	rateMagic = 25.0
	rateLoot = 4.0
	rateSpawn = 1


	rateMonsterHealth = 1.0
	rateMonsterMana = 1.0
	rateMonsterAttack = 1.0
	rateMonsterDefense = 1.0


	minLevelThresholdForKilledPlayer = 0.9
	maxLevelThresholdForKilledPlayer = 1.1


	rateStaminaLoss = 1
	rateStaminaGain = 3
	rateStaminaThresholdGain = 12
	staminaRatingLimitTop = 40 * 60
	staminaRatingLimitBottom = 14 * 60
	staminaLootLimit = 14 * 60
	rateStaminaAboveNormal = 1.5
	rateStaminaUnderNormal = 0.5
	staminaThresholdOnlyPremium = true


	experienceShareRadiusX = 30
	experienceShareRadiusY = 30
	experienceShareRadiusZ = 1
	experienceShareLevelDifference = 2 / 3
	extraPartyExperienceLimit = 20
	extraPartyExperiencePercent = 5
	experienceShareActivity = 2 * 60 * 1000


	globalSaveEnabled = false
	globalSaveHour = 8
	globalSaveMinute = 30
	shutdownAtGlobalSave = true
	cleanMapAtGlobalSave = false


	deSpawnRange = 2
	deSpawnRadius = 50


	maxPlayerSummons = 2
	teleportAllSummons = false
	teleportPlayerSummons = false


	statusPort = 7171
	ownerName = "Catala"
	ownerEmail = "****"
	url = "Oldveterana.no-ip.org"
	location = "Europe"
	displayGamemastersWithOnlineCommand = false


	displayPlayersLogging = true
	prefixChannelLogs = ""
	runFile = ""
	outputLog = ""
	truncateLogsOnStartup = false


	managerPort = 7171
	managerLogs = true
	managerPassword = ""
	managerLocalhostOnly = true
	managerConnectionsLimit = 1


	adminPort = 7171
	adminLogs = true
	adminPassword = ""
	adminLocalhostOnly = true
	adminConnectionsLimit = 1
	adminRequireLogin = true
	adminEncryption = ""
	adminEncryptionData = ""
 
changed your .php - config-and-functions.php
for this:
PHP:
 <?PHP
// ###################### CONFIG ########################
$config['site'] = parse_ini_file('config/config.ini');
include('config/config.php');
if($config['site']['install'] != "no") {
    header("Location: install.php");
    exit;
}

$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
if(isset($config['server']['mysqlHost'])) {
    $mysqlhost = $config['server']['mysqlHost'];
    $mysqluser = $config['server']['mysqlUser'];
    $mysqlpass = $config['server']['mysqlPass'];
    $mysqldatabase = $config['server']['mysqlDatabase'];
}
elseif(isset($config['server']['sqlHost'])) {
    $mysqlhost = $config['server']['sqlHost'];
    $mysqluser = $config['server']['sqlUser'];
    $mysqlpass = $config['server']['sqlPass'];
    $mysqldatabase = $config['server']['sqlDatabase'];
}
$sqlitefile = $config['server']['sqliteDatabase'];
$passwordency = '';
if(strtolower($config['server']['useMD5Passwords']) == 'yes' || strtolower($config['server']['encryptionType']) == 'md5')
    $passwordency = 'md5';
if(strtolower($config['server']['encryptionType']) == 'sha1')
    $passwordency = 'sha1';
// ####################### POT #########################
include('pot/OTS.php');
$ots = POT::getInstance();
if(strtolower($config['server']['sqlType']) == "mysql") {
    try {
        $ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) );
    }
    catch(PDOException $error) {
            echo 'Database error - can\'t connect to MySQL database. Possible reasons:<br>1. MySQL server is not running on host.<br>2. MySQL user, password, database or host isn\'t configured in: <b>'.$config['site']['server_path'].'config.lua</b> .<br>3. MySQL user, password, database or host is wrong.';
        exit;
    }
}
elseif(strtolower($config['server']['sqlType']) == "sqlite") {
    $link_to_sqlitedatabase = $config['site']['server_path'].$sqlitefile;
    try {
        $ots->connect(POT::DB_SQLITE, array('database' => $link_to_sqlitedatabase));
    }
    catch(PDOException $error) {
        echo 'Database error - can\'t open SQLite database. Possible reasons:<br><b>'.$link_to_sqlitedatabase.'</b> - file isn\'t valid SQLite database.<br><b>'.$link_to_sqlitedatabase.'</b> - doesn\'t exist.<br><font color="red">Wrong PHP configuration. Default PHP does not work with SQLite databases!</font>';
        exit;
    }
} else {
    echo 'Database error. Unknown database type in <b>'.$config['site']['server_path'].'config.lua</b> . Must be equal to: "<b>mysql</b>" or "<b>sqlite</b>". Now is: "<b>'.strtolower($config['server']['sqlType']).'"</b>';
    exit;
}

$SQL = POT::getInstance()->getDBHandle();
$layout_name = "layouts/".$layout_name = $config['site']['layout'];;
$layout_ini = parse_ini_file($layout_name.'/layout_config.ini');
foreach($layout_ini as $key => $value)
    $config['site'][$key] = $value;

//###################### FUNCTIONS ######################
function isPremium($premdays, $lastday) {
    return ($premdays - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $lastday))) - date("z", $lastday)) > 0);
}
function saveconfig_ini($config) {
$file = fopen("config/config.ini", "w");
foreach($config as $param => $data) {
$file_data .= $param.' = "'.str_replace('"', '', $data).'"';
}
rewind($file);
fwrite($file, $file_data);
fclose($file);
}
function password_ency($password) {
    $ency = $GLOBALS['passwordency'];
    if($ency == 'sha1')
        return sha1($password);
    elseif($ency == 'md5')
        return md5($password);
    elseif($ency == '')
        return $password;
}
function delete_player($name) {
    $SQL = $GLOBALS['SQL'];
    $player = new OTS_Player();
    $player->find($name);
    if($player->isLoaded()) {
        try { $SQL->query("DELETE FROM player_skills WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM guild_invites WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_items WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_depotitems WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_spells WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_storage WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_viplist WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_deaths WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_deaths WHERE killed_by = '".$player->getId()."';"); } catch(PDOException $error) {}
        $rank = $player->getRank();
        if(!empty($rank)) {
            $guild = $rank->getGuild();
            if($guild->getOwner()->getId() == $player->getId()) {
                $rank_list = $guild->getGuildRanksList();
                if(count($rank_list) > 0) {
                    $rank_list->orderBy('level');
                    foreach($rank_list as $rank_in_guild) {
                        $players_with_rank = $rank_in_guild->getPlayersList();
                        $players_with_rank->orderBy('name');
                        $players_with_rank_number = count($players_with_rank);
                        if($players_with_rank_number > 0) {
                            foreach($players_with_rank as $player_in_guild) {
                                $player_in_guild->setRank();
                                $player_in_guild->save();
                            }
                        }
                        $rank_in_guild->delete();
                    }
                    $guild->delete();
                }
            }
        }
        $player->delete();
        return TRUE;
    }
}

function delete_guild($id) {
    $guild = new OTS_Guild();
    $guild->load($id);
    if($guild->isLoaded()) {
        $rank_list = $guild->getGuildRanksList();
        if(count($rank_list) > 0) {
            $rank_list->orderBy('level');
            foreach($rank_list as $rank_in_guild) {
                $players_with_rank = $rank_in_guild->getPlayersList();
                if(count($players_with_rank) > 0) {
                    foreach($players_with_rank as $player_in_guild) {
                        $player_in_guild->setRank();
                        $player_in_guild->save();
                    }
                }
                $rank_in_guild->delete();
            }
        }
        $guild->delete();
        return TRUE;
    }
    else
    return FALSE;
}

function check_name($name) {
    $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- [ ] '");
    if ($temp != strlen($name)) {
        return false;
    } else {
        $ok = "/[a-zA-Z ']{1,25}/";
        return (preg_match($ok, $name))? true: false;
    }
}

function check_account_name($name) {
    $temp = strspn("$name", "QWERTYUIOPASDFGHJKLZXCVBNM0123456789");
    if ($temp != strlen($name))
        return false;
    if(strlen($name) > 32)
        return false;
    else {
        $ok = "/[A-Z0-9]/";
        return (preg_match($ok, $name))? true: false;
    }
}

function check_name_new_char($name) {
    $name_to_check = strtolower($name);
    $names_blocked = array('gm','cm', 'god', 'tutor');
    $first_words_blocked = array('gm ','cm ', 'god ','tutor ', "'", '-');
    $words_blocked = array('gamemaster', 'game master', 'game-master', "game'master", '--', "''","' ", " '", '- ', ' -', "-'", "'-", 'fuck', 'sux', 'suck', 'noob', 'tutor');
    foreach($first_words_blocked as $word)
        if($word == substr($name_to_check, 0, strlen($word)))
            return false;
    if(substr($name_to_check, -1) == "'" || substr($name_to_check, -1) == "-")
        return false;
    if(substr($name_to_check, 1, 1) == ' ')
        return false;
    if(substr($name_to_check, -2, 1) == " ")
        return false;
    foreach($names_blocked as $word)
        if($word == $name_to_check)
            return false;
    foreach($GLOBALS['config']['site']['monsters'] as $word)
        if($word == $name_to_check)
            return false;
    foreach($GLOBALS['config']['site']['npc'] as $word)
        if($word == $name_to_check)
            return false;
    for($i = 0; $i < strlen($name_to_check); $i++)
        if($name_to_check[$i-1] == ' ' && $name_to_check[$i+1] == ' ')
            return false;
    foreach($words_blocked as $word)
        if (!(strpos($name_to_check, $word) === false))
            return false;
    for($i = 0; $i < strlen($name_to_check); $i++)
        if($name_to_check[$i] == $name_to_check[($i+1)] && $name_to_check[$i] == $name_to_check[($i+2)])
            return false;
    for($i = 0; $i < strlen($name_to_check); $i++)
        if($name_to_check[$i-1] == ' ' && $name_to_check[$i+1] == ' ')
            return false;
    $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- '");
    if ($temp != strlen($name))
        return false;
    else {
        $ok = "/[a-zA-Z ']{1,25}/";
        return (preg_match($ok, $name))? true: false;
    }
}

function check_rank_name($name) {
    $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789-[ ] ");
    if ($temp != strlen($name)) {
        return false;
    } else {
        $ok = "/[a-zA-Z ]{1,60}/";
        return (preg_match($ok, $name))? true: false;
    }
}

function check_guild_name($name) {
    $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789- ");
    if ($temp != strlen($name)) {
        return false;
    } else {
        $ok = "/[a-zA-Z ]{1,60}/";
        return (preg_match($ok, $name))? true: false;
    }
}

function check_password($pass) {
    $temp = strspn("$pass", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890");
    if ($temp != strlen($pass)) {
        return false;
    } else {
        $ok = "/[a-zA-Z0-9]{1,40}/";
        return (preg_match($ok, $pass))? true: false;
    }
}

function check_mail($email) {
    $ok = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}/";
    return (preg_match($ok, $email))? true: false;
}

function items_on_player($characterid, $pid)
{
        global $SQL;
        $item = $SQL->query("SELECT `itemtype` FROM `player_items` WHERE `pid` = '".$pid."' AND `player_id` = '".$characterid."'")->fetch();
        return '<img src="images/items/' . $item['itemtype'] . '.gif" />';
}

function showCommentsCount( $date )
{
        global $SQL;
        $result = $SQL->query("SELECT COUNT(*) as `count` FROM `z_news_comments` WHERE `news_date` = " . (int)$date . ";")->fetch();
        return (int)$result['count'];
}

function getReason($reasonId)
{
        switch($reasonId)
        {
                case 0:
                        return "Offensive Name";
                case 1:
                        return "Invalid Name Format";
                case 2:
                        return "Unsuitable Name";
                case 3:
                        return "Name Inciting Rule Violation";
                case 4:
                        return "Offensive Statement";
                case 5:
                        return "Spamming";
                case 6:
                        return "Illegal Advertising";
                case 7:
                        return "Off-Topic Public Statement";
                case 8:
                        return "Non-English Public Statement";
                case 9:
                        return "Inciting Rule Violation";
                case 10:
                        return "Bug Abuse";
                case 11:
                        return "Game Weakness Abuse";
                case 12:
                        return "Using Unofficial Software to Play";
                case 13:
                        return "Hacking";
                case 14:
                        return "Multi-Clienting";
                case 15:
                        return "Account Trading or Sharing";
                case 16:
                        return "Threatening Gamemaster";
                case 17:
                        return "Pretending to Have Influence on Rule Enforcement";
                case 18:
                        return "False Report to Gamemaster";
                case 19:
                        return "Destructive Behaviour";
                case 20:
                        return "Excessive Unjustified Player Killing";
                case 21:
                        return "Invalid Payment";
                case 22:
                        return "Spoiling Auction";
                default:
                        break;
        }
        return "Unknown Reason";
}

//################### DISPLAY FUNCTIONS #####################
function short_text($text, $chars_limit) {
    if (strlen($text) > $chars_limit) 
        return substr($text, 0, strrpos(substr($text, 0, $chars_limit), " ")).'...';
    else return $text;
}
function logo_monster() {
    return str_replace(" ", "", trim(mb_strtolower($GLOBALS['layout_ini']['logo_monster'])));
}


$statustimeout = 1;
foreach(explode("*", str_replace(" ", "", $config['server']['statusTimeout'])) as $status_var)
    if($status_var > 0)
        $statustimeout = $statustimeout * $status_var;
$statustimeout = $statustimeout / 1000;
$config['status'] = parse_ini_file('config/serverstatus');
if($config['status']['serverStatus_lastCheck']+$statustimeout < time())
{
    $config['status']['serverStatus_checkInterval'] = $statustimeout+3;
    $config['status']['serverStatus_lastCheck'] = time();
    $info = chr(6).chr(0).chr(255).chr(255).'info';
    $sock = @fsockopen("127.0.0.1", $config['server']['statusPort'], $errno, $errstr, 1);
    if ($sock)
    {
        fwrite($sock, $info); 
        $data=''; 
        while (!feof($sock))
            $data .= fgets($sock, 1024);
        fclose($sock);
        preg_match('/players online="(\d+)" max="(\d+)"/', $data, $matches);
        $config['status']['serverStatus_online'] = 1;
        $config['status']['serverStatus_players'] = $matches[1];
        $config['status']['serverStatus_playersMax'] = $matches[2];
        preg_match('/uptime="(\d+)"/', $data, $matches);
        $h = floor($matches[1] / 3600);
        $m = floor(($matches[1] - $h*3600) / 60);
        $config['status']['serverStatus_uptime'] = $h.'h '.$m.'m';
        preg_match('/monsters total="(\d+)"/', $data, $matches);
        $config['status']['serverStatus_monsters'] = $matches[1];
    }
    else
    {
        $config['status']['serverStatus_online'] = 0;
        $config['status']['serverStatus_players'] = 0;
        $config['status']['serverStatus_playersMax'] = 0;
    }
    $file = fopen("config/serverstatus", "w");
    foreach($config['status'] as $param => $data)
    {
$file_data .= $param.' = "'.str_replace('"', '', $data).'"
';
    }
    rewind($file);
    fwrite($file, $file_data);
    fclose($file);
}

$views_counter = "usercounter.dat";
if (file_exists($views_counter)) {
    $actie = fopen($views_counter, "r+"); 
    $page_views = fgets($actie, 9); 
    $page_views++; 
    rewind($actie); 
    fputs($actie, $page_views, 9); 
    fclose($actie); 
} else { 
    $actie = fopen($views_counter, "w"); 
    $page_views = 1; 
    fputs($actie, $page_views, 9); 
    fclose($actie); 
}
// Functions by Colandus
function makeOrder($arr, $order, $default) {
    $type = 'asc';
    if(isset($_GET['order'])) {
            $v = explode('_', strrev($_GET['order']), 2);
        if(count($v) == 2)
        if($orderBy = $arr[strrev($v[1])])
            $default = $orderBy;
    $type = (strrev($v[0]) == 'asc' ? 'desc' : 'asc');
    }
return 'ORDER BY ' . $default . ' ' . $type;
}
function getOrder($arr, $order, $this) {
    $type = 'asc';
    if($orderBy = $arr[$this])
        if(isset($_GET[$order])) {
            $v = explode('_', strrev($_GET[$order]), 2);
            if(strrev($v[1]) == $this)
            $type = (strrev($v[0]) == 'asc' ? 'desc' : 'asc');
        }
    return $this . '_' . $type;
}  

?>
 
changed your .php - config-and-functions.php
for this:
PHP:
 <?PHP
// ###################### CONFIG ########################
$config['site'] = parse_ini_file('config/config.ini');
include('config/config.php');
if($config['site']['install'] != "no") {
    header("Location: install.php");
    exit;
}

$config['server'] = parse_ini_file($config['site']['server_path'].'config.lua');
if(isset($config['server']['mysqlHost'])) {
    $mysqlhost = $config['server']['mysqlHost'];
    $mysqluser = $config['server']['mysqlUser'];
    $mysqlpass = $config['server']['mysqlPass'];
    $mysqldatabase = $config['server']['mysqlDatabase'];
}
elseif(isset($config['server']['sqlHost'])) {
    $mysqlhost = $config['server']['sqlHost'];
    $mysqluser = $config['server']['sqlUser'];
    $mysqlpass = $config['server']['sqlPass'];
    $mysqldatabase = $config['server']['sqlDatabase'];
}
$sqlitefile = $config['server']['sqliteDatabase'];
$passwordency = '';
if(strtolower($config['server']['useMD5Passwords']) == 'yes' || strtolower($config['server']['encryptionType']) == 'md5')
    $passwordency = 'md5';
if(strtolower($config['server']['encryptionType']) == 'sha1')
    $passwordency = 'sha1';
// ####################### POT #########################
include('pot/OTS.php');
$ots = POT::getInstance();
if(strtolower($config['server']['sqlType']) == "mysql") {
    try {
        $ots->connect(POT::DB_MYSQL, array('host' => $mysqlhost, 'user' => $mysqluser, 'password' => $mysqlpass, 'database' => $mysqldatabase) );
    }
    catch(PDOException $error) {
            echo 'Database error - can\'t connect to MySQL database. Possible reasons:<br>1. MySQL server is not running on host.<br>2. MySQL user, password, database or host isn\'t configured in: <b>'.$config['site']['server_path'].'config.lua</b> .<br>3. MySQL user, password, database or host is wrong.';
        exit;
    }
}
elseif(strtolower($config['server']['sqlType']) == "sqlite") {
    $link_to_sqlitedatabase = $config['site']['server_path'].$sqlitefile;
    try {
        $ots->connect(POT::DB_SQLITE, array('database' => $link_to_sqlitedatabase));
    }
    catch(PDOException $error) {
        echo 'Database error - can\'t open SQLite database. Possible reasons:<br><b>'.$link_to_sqlitedatabase.'</b> - file isn\'t valid SQLite database.<br><b>'.$link_to_sqlitedatabase.'</b> - doesn\'t exist.<br><font color="red">Wrong PHP configuration. Default PHP does not work with SQLite databases!</font>';
        exit;
    }
} else {
    echo 'Database error. Unknown database type in <b>'.$config['site']['server_path'].'config.lua</b> . Must be equal to: "<b>mysql</b>" or "<b>sqlite</b>". Now is: "<b>'.strtolower($config['server']['sqlType']).'"</b>';
    exit;
}

$SQL = POT::getInstance()->getDBHandle();
$layout_name = "layouts/".$layout_name = $config['site']['layout'];;
$layout_ini = parse_ini_file($layout_name.'/layout_config.ini');
foreach($layout_ini as $key => $value)
    $config['site'][$key] = $value;

//###################### FUNCTIONS ######################
function isPremium($premdays, $lastday) {
    return ($premdays - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $lastday))) - date("z", $lastday)) > 0);
}
function saveconfig_ini($config) {
$file = fopen("config/config.ini", "w");
foreach($config as $param => $data) {
$file_data .= $param.' = "'.str_replace('"', '', $data).'"';
}
rewind($file);
fwrite($file, $file_data);
fclose($file);
}
function password_ency($password) {
    $ency = $GLOBALS['passwordency'];
    if($ency == 'sha1')
        return sha1($password);
    elseif($ency == 'md5')
        return md5($password);
    elseif($ency == '')
        return $password;
}
function delete_player($name) {
    $SQL = $GLOBALS['SQL'];
    $player = new OTS_Player();
    $player->find($name);
    if($player->isLoaded()) {
        try { $SQL->query("DELETE FROM player_skills WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM guild_invites WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_items WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_depotitems WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_spells WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_storage WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_viplist WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_deaths WHERE player_id = '".$player->getId()."';"); } catch(PDOException $error) {}
        try { $SQL->query("DELETE FROM player_deaths WHERE killed_by = '".$player->getId()."';"); } catch(PDOException $error) {}
        $rank = $player->getRank();
        if(!empty($rank)) {
            $guild = $rank->getGuild();
            if($guild->getOwner()->getId() == $player->getId()) {
                $rank_list = $guild->getGuildRanksList();
                if(count($rank_list) > 0) {
                    $rank_list->orderBy('level');
                    foreach($rank_list as $rank_in_guild) {
                        $players_with_rank = $rank_in_guild->getPlayersList();
                        $players_with_rank->orderBy('name');
                        $players_with_rank_number = count($players_with_rank);
                        if($players_with_rank_number > 0) {
                            foreach($players_with_rank as $player_in_guild) {
                                $player_in_guild->setRank();
                                $player_in_guild->save();
                            }
                        }
                        $rank_in_guild->delete();
                    }
                    $guild->delete();
                }
            }
        }
        $player->delete();
        return TRUE;
    }
}

function delete_guild($id) {
    $guild = new OTS_Guild();
    $guild->load($id);
    if($guild->isLoaded()) {
        $rank_list = $guild->getGuildRanksList();
        if(count($rank_list) > 0) {
            $rank_list->orderBy('level');
            foreach($rank_list as $rank_in_guild) {
                $players_with_rank = $rank_in_guild->getPlayersList();
                if(count($players_with_rank) > 0) {
                    foreach($players_with_rank as $player_in_guild) {
                        $player_in_guild->setRank();
                        $player_in_guild->save();
                    }
                }
                $rank_in_guild->delete();
            }
        }
        $guild->delete();
        return TRUE;
    }
    else
    return FALSE;
}

function check_name($name) {
    $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- [ ] '");
    if ($temp != strlen($name)) {
        return false;
    } else {
        $ok = "/[a-zA-Z ']{1,25}/";
        return (preg_match($ok, $name))? true: false;
    }
}

function check_account_name($name) {
    $temp = strspn("$name", "QWERTYUIOPASDFGHJKLZXCVBNM0123456789");
    if ($temp != strlen($name))
        return false;
    if(strlen($name) > 32)
        return false;
    else {
        $ok = "/[A-Z0-9]/";
        return (preg_match($ok, $name))? true: false;
    }
}

function check_name_new_char($name) {
    $name_to_check = strtolower($name);
    $names_blocked = array('gm','cm', 'god', 'tutor');
    $first_words_blocked = array('gm ','cm ', 'god ','tutor ', "'", '-');
    $words_blocked = array('gamemaster', 'game master', 'game-master', "game'master", '--', "''","' ", " '", '- ', ' -', "-'", "'-", 'fuck', 'sux', 'suck', 'noob', 'tutor');
    foreach($first_words_blocked as $word)
        if($word == substr($name_to_check, 0, strlen($word)))
            return false;
    if(substr($name_to_check, -1) == "'" || substr($name_to_check, -1) == "-")
        return false;
    if(substr($name_to_check, 1, 1) == ' ')
        return false;
    if(substr($name_to_check, -2, 1) == " ")
        return false;
    foreach($names_blocked as $word)
        if($word == $name_to_check)
            return false;
    foreach($GLOBALS['config']['site']['monsters'] as $word)
        if($word == $name_to_check)
            return false;
    foreach($GLOBALS['config']['site']['npc'] as $word)
        if($word == $name_to_check)
            return false;
    for($i = 0; $i < strlen($name_to_check); $i++)
        if($name_to_check[$i-1] == ' ' && $name_to_check[$i+1] == ' ')
            return false;
    foreach($words_blocked as $word)
        if (!(strpos($name_to_check, $word) === false))
            return false;
    for($i = 0; $i < strlen($name_to_check); $i++)
        if($name_to_check[$i] == $name_to_check[($i+1)] && $name_to_check[$i] == $name_to_check[($i+2)])
            return false;
    for($i = 0; $i < strlen($name_to_check); $i++)
        if($name_to_check[$i-1] == ' ' && $name_to_check[$i+1] == ' ')
            return false;
    $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM- '");
    if ($temp != strlen($name))
        return false;
    else {
        $ok = "/[a-zA-Z ']{1,25}/";
        return (preg_match($ok, $name))? true: false;
    }
}

function check_rank_name($name) {
    $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789-[ ] ");
    if ($temp != strlen($name)) {
        return false;
    } else {
        $ok = "/[a-zA-Z ]{1,60}/";
        return (preg_match($ok, $name))? true: false;
    }
}

function check_guild_name($name) {
    $temp = strspn("$name", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789- ");
    if ($temp != strlen($name)) {
        return false;
    } else {
        $ok = "/[a-zA-Z ]{1,60}/";
        return (preg_match($ok, $name))? true: false;
    }
}

function check_password($pass) {
    $temp = strspn("$pass", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890");
    if ($temp != strlen($pass)) {
        return false;
    } else {
        $ok = "/[a-zA-Z0-9]{1,40}/";
        return (preg_match($ok, $pass))? true: false;
    }
}

function check_mail($email) {
    $ok = "/[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}/";
    return (preg_match($ok, $email))? true: false;
}

function items_on_player($characterid, $pid)
{
        global $SQL;
        $item = $SQL->query("SELECT `itemtype` FROM `player_items` WHERE `pid` = '".$pid."' AND `player_id` = '".$characterid."'")->fetch();
        return '<img src="http://static2.otland.net/i/items/' . $item['itemtype'] . '.gif" />';
}

function showCommentsCount( $date )
{
        global $SQL;
        $result = $SQL->query("SELECT COUNT(*) as `count` FROM `z_news_comments` WHERE `news_date` = " . (int)$date . ";")->fetch();
        return (int)$result['count'];
}

function getReason($reasonId)
{
        switch($reasonId)
        {
                case 0:
                        return "Offensive Name";
                case 1:
                        return "Invalid Name Format";
                case 2:
                        return "Unsuitable Name";
                case 3:
                        return "Name Inciting Rule Violation";
                case 4:
                        return "Offensive Statement";
                case 5:
                        return "Spamming";
                case 6:
                        return "Illegal Advertising";
                case 7:
                        return "Off-Topic Public Statement";
                case 8:
                        return "Non-English Public Statement";
                case 9:
                        return "Inciting Rule Violation";
                case 10:
                        return "Bug Abuse";
                case 11:
                        return "Game Weakness Abuse";
                case 12:
                        return "Using Unofficial Software to Play";
                case 13:
                        return "Hacking";
                case 14:
                        return "Multi-Clienting";
                case 15:
                        return "Account Trading or Sharing";
                case 16:
                        return "Threatening Gamemaster";
                case 17:
                        return "Pretending to Have Influence on Rule Enforcement";
                case 18:
                        return "False Report to Gamemaster";
                case 19:
                        return "Destructive Behaviour";
                case 20:
                        return "Excessive Unjustified Player Killing";
                case 21:
                        return "Invalid Payment";
                case 22:
                        return "Spoiling Auction";
                default:
                        break;
        }
        return "Unknown Reason";
}

//################### DISPLAY FUNCTIONS #####################
function short_text($text, $chars_limit) {
    if (strlen($text) > $chars_limit) 
        return substr($text, 0, strrpos(substr($text, 0, $chars_limit), " ")).'...';
    else return $text;
}
function logo_monster() {
    return str_replace(" ", "", trim(mb_strtolower($GLOBALS['layout_ini']['logo_monster'])));
}


$statustimeout = 1;
foreach(explode("*", str_replace(" ", "", $config['server']['statusTimeout'])) as $status_var)
    if($status_var > 0)
        $statustimeout = $statustimeout * $status_var;
$statustimeout = $statustimeout / 1000;
$config['status'] = parse_ini_file('config/serverstatus');
if($config['status']['serverStatus_lastCheck']+$statustimeout < time())
{
    $config['status']['serverStatus_checkInterval'] = $statustimeout+3;
    $config['status']['serverStatus_lastCheck'] = time();
    $info = chr(6).chr(0).chr(255).chr(255).'info';
    $sock = @fsockopen("127.0.0.1", $config['server']['statusPort'], $errno, $errstr, 1);
    if ($sock)
    {
        fwrite($sock, $info); 
        $data=''; 
        while (!feof($sock))
            $data .= fgets($sock, 1024);
        fclose($sock);
        preg_match('/players online="(\d+)" max="(\d+)"/', $data, $matches);
        $config['status']['serverStatus_online'] = 1;
        $config['status']['serverStatus_players'] = $matches[1];
        $config['status']['serverStatus_playersMax'] = $matches[2];
        preg_match('/uptime="(\d+)"/', $data, $matches);
        $h = floor($matches[1] / 3600);
        $m = floor(($matches[1] - $h*3600) / 60);
        $config['status']['serverStatus_uptime'] = $h.'h '.$m.'m';
        preg_match('/monsters total="(\d+)"/', $data, $matches);
        $config['status']['serverStatus_monsters'] = $matches[1];
    }
    else
    {
        $config['status']['serverStatus_online'] = 0;
        $config['status']['serverStatus_players'] = 0;
        $config['status']['serverStatus_playersMax'] = 0;
    }
    $file = fopen("config/serverstatus", "w");
    foreach($config['status'] as $param => $data)
    {
$file_data .= $param.' = "'.str_replace('"', '', $data).'"
';
    }
    rewind($file);
    fwrite($file, $file_data);
    fclose($file);
}

$views_counter = "usercounter.dat";
if (file_exists($views_counter)) {
    $actie = fopen($views_counter, "r+"); 
    $page_views = fgets($actie, 9); 
    $page_views++; 
    rewind($actie); 
    fputs($actie, $page_views, 9); 
    fclose($actie); 
} else { 
    $actie = fopen($views_counter, "w"); 
    $page_views = 1; 
    fputs($actie, $page_views, 9); 
    fclose($actie); 
}
// Functions by Colandus
function makeOrder($arr, $order, $default) {
    $type = 'asc';
    if(isset($_GET['order'])) {
            $v = explode('_', strrev($_GET['order']), 2);
        if(count($v) == 2)
        if($orderBy = $arr[strrev($v[1])])
            $default = $orderBy;
    $type = (strrev($v[0]) == 'asc' ? 'desc' : 'asc');
    }
return 'ORDER BY ' . $default . ' ' . $type;
}
function getOrder($arr, $order, $this) {
    $type = 'asc';
    if($orderBy = $arr[$this])
        if(isset($_GET[$order])) {
            $v = explode('_', strrev($_GET[$order]), 2);
            if(strrev($v[1]) == $this)
            $type = (strrev($v[0]) == 'asc' ? 'desc' : 'asc');
        }
    return $this . '_' . $type;
}  

?>

Sorry for my ignorance... but where i should paste this?
 
Back
Top