You can accomplish this using a sql database. Different browser settings do not make any difference, except for proxy.
Every time someone opens your website, get their IP address and insert it into a table with this structure:
(varchar)ip, (int)time
Check if the ip is already in the database first and if that's the case, just update the time with current time.
time();
to get the number of online users just select from table where current time - time <= 300(online - has visited the site in the last 5 minutes).
To check if it's a user, just check if the ip matches any accounts' ip address. If you don't store your members' ip addresses then it's about time to. Just update their ip address every time they login.
To get the number of people who visited your website today select from that table where current time - time <= 86400 (24 hours)
If you want the 'online today' counter to reset at midnight, create another column in the table storing the date(without time) the user visited the website, then simply check if it's today's date or delete all records every day.