• 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!

Linux Whosonline.php

Wraskly

Member
Joined
Jun 17, 2010
Messages
244
Reaction score
7
For some reason my whosonline.php doesnt change the player from 1 to 0 on logout, well i think the code is the problem but im not totally sure, can someone tell me if there is a problem with my code? It just doesnt remove the players that has been online from the whos online page, when they arent even online. Heres my whosonline.php
PHP:
<?PHP
$order = $_REQUEST['order'];
if($order == 'name') {
	$orderby = 'name';
}
if($order == 'level') {
	$orderby = 'level';
}
if($order == 'vocation') {
	$orderby = 'vocation';
}
if(empty($orderby)) {
	$orderby = 'name';
}
$players_online_data = $SQL->query('SELECT * FROM players WHERE online = 1 ORDER BY '.$orderby);
$number_of_players_online = 0;
foreach($players_online_data as $player) {
	$number_of_players_online++;
	if(is_int($number_of_players_online / 2)) {
		$bgcolor = $config['site']['darkborder'];
	}
	else
	{
		$bgcolor = $config['site']['lightborder'];
	}
	$players_rows .= '<TR BGCOLOR='.$bgcolor.'><TD WIDTH=70%><A HREF="index.php?subtopic=characters&name='.$player['name'].'">'.$player['name'].'</A></TD><TD WIDTH=10%>'.$player['level'].'</TD><TD WIDTH=20%>'.$config_vocations[$player['vocation']].'</TD></TR>';
}
if($number_of_players_online == 0) {
	//server status - server empty
	$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Server Status</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>Currently no one is playing on '.$config['server']['serverName'].'.</TD></TR></TABLE></TD></TR></TABLE><BR>';
}
else
{
	//server status - someone is online
	$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Server Status</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>Currently '.$number_of_players_online.' players are online.</TD></TR></TABLE></TD></TR></TABLE><BR>';
	//list of players
	$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD><A HREF="index.php?subtopic=whoisonline&order=name" CLASS=white>Name</A></TD><TD><A HREF="index.php?subtopic=whoisonline&order=level" CLASS=white>Level</A></TD><TD><A HREF="index.php?subtopic=whoisonline&order=vocation" CLASS=white>Vocation</TD></TR>'.$players_rows.'</TABLE>';
	//search bar
	$main_content .= '<BR><FORM ACTION="index.php?subtopic=characters" METHOD=post>  <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>';
}
?>
 
Try it out because using gesior on linux isn't the same as windows. You have set permission for files in Linux aswell. You have to chmod /guilds also because they won't be able to change guild logos without it.
 
Oh I see, Did your server crash or anything? Because people who were online at that time will still be "online" at the website.
 
It says theres 44 people online in the who's online page, but in the server status (which is true) there is 2 people online, everyone that has logged in just doesn't get removed from the who's online page, but they do get removed from the server status box
 
Ahh, so maybe once I restart Gesior it will work, since the actual owner gets on ill have him do it, cuz I have no clue how to do any of that stuff :p thanks for your help!
 
The characters have to login and logout to make it disappear on the website.
 
Rawr, okay, when i say !online there are only 4 players on, in my server status box on my site it says theres only 4 players on. but, when i goto whosonline it says theres 54 players on, and thats very incorrect... the online status doesnt change in the database from 1 to 0 on logout
 
what he is saying is when a player logs in, the online field in the Players table changes to a "1". However, when the players logout, that field doesn't not get changed to a "0". It stays a "1" so the whosonline.php from the website does a "select" statement looking for the "1" flag in the online field. So since this flag doesn't change, the Who's Online page is incorrect.

The Server Status section is correct, since that is a file being updated in the config/serverstatus file. <--he is not stating that this is incorrect, so your command chmod 777 -R www only effects the abiltiy to write to the serverstatus file and has already been stated above that this works correctly.
 
This has probably happened after a server crash.

After a crash, the online field in players doesn't change back to 0 because the players don't log out normaly. The solution for that problem is either manually change every field to 0 in players table. Or wait for each person to log in or out again.
 
Back
Top