Show online users
is there any tutorial or help files or can some one point me the correct way to show the users online like how many users are online and wich users are online?
Thank you
Sades
is there any tutorial or help files or can some one point me the correct way to show the users online like how many users are online and wich users are online?
Thank you
Sades
this is not supported in Security Assist.
It would require updating a database table when a user logs in, and again when the user logs out.
The problem is handling the log out part.
There is no 100% full prof way to tell when a user logs out. They could click a log out button, or close the browser, or simply just sit idle and have the session time out. It's easy enough to update the database if the logout button is pressed, but there's no full proof way to update a database when the session times out or the browser is closed.
Hi
You could put the code to update the session on every page plus a time stamp and if the user has not been active for lets say 15 mins their session would be removed form the DB table.
Mike
yea i have been studying how i could adapt this tutorial to security assist and also to make it work with a cronjob
whois-online.php
if i ever get it done and have some extra time ill post the how to do it
You would not need a cron job as it would be updated on every page refresh. A cron job would just waste server time when theres no-one online.
Mike
that system takes care of logging out via the log in button, and logging them out if they have a page from your site open, but are inactive. but it does not take care of the big problem when a user simply closes the browser, or goes to another site without logging out first.
Yep very true this is what i did
STEP 1
on my user or login table i added these at the end
`conected_usr` char(1) COLLATE latin1_general_cs DEFAULT 'N',
`tm_usr` datetime DEFAULT '0000-00-00 00:00:00',
both of them i set them to NULL
STEP 2
Open up the login page:
on the login page instead of making the log table wich i have for other propose (i made my logs kind of addt style so i didnt want to use that one)
i did an update single record with data assist filtered by the User session ID and binded "Y" value to my conected_usr field and the exact date for tm_usr, this to our users table or login table
Save the login page.
STEP 3
Open up your logout.php page or how ever you name it and added with data assist an update again similiar to the login page but with the conected_usr binded value to "N" and also update the tm_usr field for the exact datetime.
STEP 4
Create a new page called whoischeck.php or what ever name you like
i first used security assist on a comon place with the show if region and modify it to this script also add your conecction on top of all
<?php require_once('../Connections/conectpage.php'); ?>
<?php require_once( "../WA_SecurityAssist/Helper_PHP.php" ); ?>
<?php
////// To update session status for user table to get who is online ////////
if(WA_Auth_RulePasses("Logged in to users")){ // Begin Show Region
$tm=date("Y-m-d H:i:s");
$xses=$_SESSION['UsID'];
$q=mysql_query("update usertb set conected='Y',tm='$tm' where UserID='$xses'");
//echo "<center><font face='Verdana' size='2' ><br>Welcome $xses Click <a href=logout.php>here to logout</a> | <a href=change-password.php>Change Password</a>| <a href=update-profile.php>Update Profile</a><br></center></font>";
echo $tm;
echo mysql_error();}
else{
//echo "<center><font face='Verdana' size='2' ><a href=login.php>Already a member, please Login</a> </center></font>";
}
///// ////////////// End of updating login status for who is online ///////
// Find out who is online /////////
$gap=10; // change this to change the time in minutes, This is the time for which active users are collected.
$tm=date ("Y-m-d H:i:s", mktime (date("H"),date("i")-$gap,date("s"),date("m"),date("d"),date("Y")));
//// Let us update the table and set the status to OFF
////for the users who have not interacted with
////pages in last 10 minutes ( set by $gap variable above ) ///
$ut=mysql_query("update usertb set conected='N' where tm < '$tm'");
echo mysql_error();
/// Now let us collect the userids from table who are online ////////
$qt=mysql_query("select UsID from usertb where tm > '$tm' and conected='Y'");
echo mysql_error();
while($nt=mysql_fetch_array($qt)){
//echo "$nt[UsID],";
}
?>
STEP 5
This last file i include it to the sites footer so it loads on every page and also i set a cronjob in order to check every hour if the user table has activity or not, but havent test it yet, the cronjob on cpanel host is something like this
php -q /home/accountname/public_html/crons/whoischeck.php
STEP 6
Now at my administration part i created a file to show me users conected or not conected, i also built a little ticket thing wich allows me to msg quickly users and they will get an icon to check the site msg like a small chat, it also usefull if your building your own forum or message boards.
Hope this helps
Sades
Pd. i have still not tested on a live server yet if any one use this please let us know also if you modify it i just grabbed a tutorial and took the parts mostly for the cronjob to be applyed
Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.
These out-of-the-box solutions provide you proven, tested applications that can be up and running now. Build a store, a gallery, or a web-based email solution.