Could someone tell me what I’m doing wrong?
I want to display the users online on specific rooms only.
the code below is the function that calls my online.php this is under my chat.php
when I load the page this function also loads.
function whos_online() {
if ( window.XMLHttpRequest ) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "online.php?room=<?php $_SESSION['room']?>", false);
xmlhttp.send();
document.getElementById("whos_online").innerHTML = xmlhttp.responseText;
}
ONLINE.PHP
this is the content of my online.php
<link rel="stylesheet" type="text/css" href="style.css" />
<?php
session_start();
include 'db.inc.php';
class WhosOnline{
$rn = $_GET['room'];
protected $get_status_query = "SELECT * FROM `online_users` WHERE `room` = '{$rn}'";
public function DisplayUsers(){
$get_current_status = mysql_query( $this->get_status_query );
if( mysql_num_rows( $get_current_status ) != 0 ) {
while( $row_status = mysql_fetch_array( $get_current_status ) ) {
if( $_SESSION['username'] == true ) {
echo "<div class='online_margin'>
<b>".base64_decode($row_status['username'])."</b>
</div>
<hr style='border: 0; border-top: solid 1px #D8D8D8;margin: 5px 10px 5px 10px;' />";
}
}
}
}
}
$Online = new WhosOnline;
$Online->DisplayUsers();
?>
Any help?
Ok, even this gives an error:
This also gives an error:
The error is because you’re trying to set a variable based on another variable in the class definition. You could do this in the constructor. Or you can set class members based on CONSTANTS (as you were doing with the query string). But why not rewrite your WhosOnline method like this:
This will also remove any potential errors you might have with
$this->references missing.