hello
i would like to know The current number of users online in my App
i check in Admin area i dont fine any information .
i would like to add the current number of users online in my App on my App Home page ,
thanks a lot
How i know The current number of users online in my App ??
Re: How i know The current number of users online in my App ??
Hi,
you will need to implement some criteria what "being online" means.
Is a user online with your app when he/she is logged in?
Is there an automatic logout when there is no action from the user?
What if a user decides to "stay logged in"? How should that be counted?
Can a user log in on different devices? How should that be counted?
Once you have made up your mind, you can write into a new table when the user logs in and logs out. Then it's simple - just count all log in, substract all log out and you should have an estimate of the actual logged in users.
I suggest that you create an automatic logout - and write that to the table. This logout, if not checked on a page-reload (if to much time has passed since last user action, log that user out), should probably use JS. You might know such automatic logout from your online bank which might show how much time is left - and make the logout after the time has passed autimatically.
Olaf
you will need to implement some criteria what "being online" means.
Is a user online with your app when he/she is logged in?
Is there an automatic logout when there is no action from the user?
What if a user decides to "stay logged in"? How should that be counted?
Can a user log in on different devices? How should that be counted?
Once you have made up your mind, you can write into a new table when the user logs in and logs out. Then it's simple - just count all log in, substract all log out and you should have an estimate of the actual logged in users.
I suggest that you create an automatic logout - and write that to the table. This logout, if not checked on a page-reload (if to much time has passed since last user action, log that user out), should probably use JS. You might know such automatic logout from your online bank which might show how much time is left - and make the logout after the time has passed autimatically.
Olaf
Some postings I was involved, you might find useful:
SingleEdit - Prevent concurrent edits on records; Field Permissions; Column-Value-Based-Permissions; Custom (error) message; Audit Log; Backup your database; Two Factor Authentication; Block brute force (failed) logins; Add 2nd SAVE CHANGES button; Place a search on details view
SingleEdit - Prevent concurrent edits on records; Field Permissions; Column-Value-Based-Permissions; Custom (error) message; Audit Log; Backup your database; Two Factor Authentication; Block brute force (failed) logins; Add 2nd SAVE CHANGES button; Place a search on details view
Re: How i know The current number of users online in my App ??
thanks for your replay
Is a user online with your app when he/she is logged in?
this one OK i have table for user when login with date and IP Address information
Is there an automatic logout when there is no action from the user?
I Dont have automatic logout information
What if a user decides to "stay logged in"? How should that be counted?
it will be count ( if there are four user already login to system ) will show number 4 User is online if one of them logout will show 3 User is online
Can a user log in on different devices? How should that be counted?
if login with different user name will add one
i dont know how i can find who logout ..
do you like help me to create an automatic logout information ???
thanks a lot
Is a user online with your app when he/she is logged in?
this one OK i have table for user when login with date and IP Address information
Is there an automatic logout when there is no action from the user?
I Dont have automatic logout information
What if a user decides to "stay logged in"? How should that be counted?
it will be count ( if there are four user already login to system ) will show number 4 User is online if one of them logout will show 3 User is online
Can a user log in on different devices? How should that be counted?
if login with different user name will add one
i dont know how i can find who logout ..
do you like help me to create an automatic logout information ???
thanks a lot
Re: How i know The current number of users online in my App ??
Hi
create a new file "loguserout.php" in your hooks directory with this code:
Change your /index.php (note: this file will be overwritten when you recreate your application with AG):
Search for
insert this after:
Done. IF the user clicks the logout button a record will be created.
Note 1: This does NOT cover automatic lopgging someone out.
Note 2: This does (probably) not cover different devices - you could take care of this in your SQL which you use to count people.
Olaf
create a new file "loguserout.php" in your hooks directory with this code:
Code: Select all
<?
$mi = getMemberInfo();
$ip = $_SERVER['REMOTE_ADDR'];
$ts = date('Y-m-d H:i:s', strtotime("now"));
$details = makeSafe($mi['username']) ." logged out.";
sql("INSERT INTO yout_log_table_name_here set ipaddr='{$ip}', time_stmp='{$ts}', details='{$details}'", $eo);
//END document login
?>
Search for
Code: Select all
if(isset($_GET['signOut'])) {
Code: Select all
include("{$currDir}/hooks/loguserout.php");
Note 1: This does NOT cover automatic lopgging someone out.
Note 2: This does (probably) not cover different devices - you could take care of this in your SQL which you use to count people.
Olaf
Some postings I was involved, you might find useful:
SingleEdit - Prevent concurrent edits on records; Field Permissions; Column-Value-Based-Permissions; Custom (error) message; Audit Log; Backup your database; Two Factor Authentication; Block brute force (failed) logins; Add 2nd SAVE CHANGES button; Place a search on details view
SingleEdit - Prevent concurrent edits on records; Field Permissions; Column-Value-Based-Permissions; Custom (error) message; Audit Log; Backup your database; Two Factor Authentication; Block brute force (failed) logins; Add 2nd SAVE CHANGES button; Place a search on details view
Re: How i know The current number of users online in my App ??
thanks a lot
it work with me if i add all Code on Index.php
i create hooks/loguserout.php and add include("{$currDir}/hooks/loguserout.php"); in index.php but its not working
it work with me if i add all Code on Index.php
Code: Select all
<?php
$currDir = dirname(__FILE__);
define('HOMEPAGE', true);
include("{$currDir}/defaultLang.php");
include("{$currDir}/language.php");
include("{$currDir}/lib.php");
$x = new DataList;
$x->TableTitle = $Translation['homepage'];
$mi = getMemberInfo();
$ip = $_SERVER['REMOTE_ADDR'];
$ts = date('Y-m-d H:i:s', strtotime("now"));
$details = makeSafe($mi['username']) ." logged out";
// according to provided GET parameters, either log out, show login form (possibly with a failed login message), or show homepage
if(isset($_GET['signOut'])) {
sql("INSERT INTO logout set ipaddr='{$ip}', ts='{$ts}', details='{$details}'", $eo);
logOutUser();
redirect("index.php?signIn=1");
} elseif(isset($_GET['loginFailed']) || isset($_GET['signIn'])) {
if(isset($_GET['loginFailed'])) @header('HTTP/1.0 403 Forbidden');
include("{$currDir}/login.php");
} else {
include("{$currDir}/home.php");
}
Re: How i know The current number of users online in my App ??
Just my five cents:
When user closes one of the open tabs or the browser itself there will not be any logout event, I'm afraid. Also if network is down. Also for session timeouts. Sometimes there may even be problems at midnight, for server reboots and/or twice a year at summertime/wintertime change. It is my experience from 30 years with different database-, webserver- and operating systems.
From my experience you should not rely on login/logout. It just does not work 100% in many situations.
You could use web socket technology but I would not recommend this.
Simpler approach:
You could use AJAX in the browser to periodically call a serverside php script which updates a last_active_on datetime field in your db. Then you can use sql to estimate the number of logged in users for example like this (pseudo sql)...
count distinct memberID
where last_active_on >= now()-10 minutes
This will always be an estimation.
For performance reasons I would execute that AJAX call on every page load + every 3 to 5 minutes. Definately not too often.
Hope this helps!
Best,
Jan
When user closes one of the open tabs or the browser itself there will not be any logout event, I'm afraid. Also if network is down. Also for session timeouts. Sometimes there may even be problems at midnight, for server reboots and/or twice a year at summertime/wintertime change. It is my experience from 30 years with different database-, webserver- and operating systems.
From my experience you should not rely on login/logout. It just does not work 100% in many situations.
You could use web socket technology but I would not recommend this.
Simpler approach:
You could use AJAX in the browser to periodically call a serverside php script which updates a last_active_on datetime field in your db. Then you can use sql to estimate the number of logged in users for example like this (pseudo sql)...
count distinct memberID
where last_active_on >= now()-10 minutes
This will always be an estimation.
For performance reasons I would execute that AJAX call on every page load + every 3 to 5 minutes. Definately not too often.
Hope this helps!
Best,
Jan
Kind regards,
<js />
My AppGini Blog:
https://appgini.bizzworxx.de/blog
You can help us helping you:
Please always put code fragments inside
AppGini 24.10 Revision 1579 + all AppGini Helper tools
<js />
My AppGini Blog:
https://appgini.bizzworxx.de/blog
You can help us helping you:
Please always put code fragments inside
[code]...[/code]
blocks for better readabilityAppGini 24.10 Revision 1579 + all AppGini Helper tools
Re: How i know The current number of users online in my App ??
dear jsetzer thanks a lot
serverside.php its not AppGini script ,,,, i am dont have much information in MySQL , i just learn and try do simple things
i would like ask , ,,
if there are way to know How many Session is open in my App on current time like that i can know how many user are login ??
its also for security reason should know this information
in Admin Area i can find information for user and what user did ,,, but i cant see who is online !!!!
serverside.php its not AppGini script ,,,, i am dont have much information in MySQL , i just learn and try do simple things
i would like ask , ,,
if there are way to know How many Session is open in my App on current time like that i can know how many user are login ??
its also for security reason should know this information
in Admin Area i can find information for user and what user did ,,, but i cant see who is online !!!!
Re: How i know The current number of users online in my App ??
HI,
thanks for your suggestion Jan, this sound nice and will do the job probably just fine.
xbox: Google helps ... https://makitweb.com/how-to-fire-ajax-r ... -interval/
Olaf
thanks for your suggestion Jan, this sound nice and will do the job probably just fine.
xbox: Google helps ... https://makitweb.com/how-to-fire-ajax-r ... -interval/
Olaf
Some postings I was involved, you might find useful:
SingleEdit - Prevent concurrent edits on records; Field Permissions; Column-Value-Based-Permissions; Custom (error) message; Audit Log; Backup your database; Two Factor Authentication; Block brute force (failed) logins; Add 2nd SAVE CHANGES button; Place a search on details view
SingleEdit - Prevent concurrent edits on records; Field Permissions; Column-Value-Based-Permissions; Custom (error) message; Audit Log; Backup your database; Two Factor Authentication; Block brute force (failed) logins; Add 2nd SAVE CHANGES button; Place a search on details view
Re: How i know The current number of users online in my App ??
thanks a lot for your replay
i get simple idea and make it ,,,
its work but i am not sure its ok or not ( for security )
i create login table contain User name
will create new row for user when login
when user logout
i use in index,php
will delete row
the problem now how i can refresh page every 1 minute
i get simple idea and make it ,,,
its work but i am not sure its ok or not ( for security )
i create login table contain User name
will create new row for user when login
when user logout
i use
Code: Select all
sql("DELETE from logs where User='{$User}'", $eo);
will delete row
the problem now how i can refresh page every 1 minute
Re: How i know The current number of users online in my App ??
Hi,
refresh page: Look here https://stackoverflow.com/questions/871 ... -meta-tags
Add to the header of your file (see hooks/tablename.php -> _init function).
Does it work?
The problem I see with your idea, is that if the user logs in twice, but logs out at once system - or simply does not log out, but closes the browser your table will not be clean.
Look into Jan's suggestion.
Olaf
refresh page: Look here https://stackoverflow.com/questions/871 ... -meta-tags
Add
Code: Select all
<meta http-equiv=â€refresh†content=â€60" />
Does it work?
The problem I see with your idea, is that if the user logs in twice, but logs out at once system - or simply does not log out, but closes the browser your table will not be clean.
Look into Jan's suggestion.
Olaf
Some postings I was involved, you might find useful:
SingleEdit - Prevent concurrent edits on records; Field Permissions; Column-Value-Based-Permissions; Custom (error) message; Audit Log; Backup your database; Two Factor Authentication; Block brute force (failed) logins; Add 2nd SAVE CHANGES button; Place a search on details view
SingleEdit - Prevent concurrent edits on records; Field Permissions; Column-Value-Based-Permissions; Custom (error) message; Audit Log; Backup your database; Two Factor Authentication; Block brute force (failed) logins; Add 2nd SAVE CHANGES button; Place a search on details view
Re: How i know The current number of users online in my App ??
The problem I see with your idea, is that if the user logs in twice, but logs out at once system - or simply does not log out, but closes the browser your table will not be clean.
that True , ,, i am still work around
thanks a lot for your information
that True , ,, i am still work around
thanks a lot for your information