Jump to content
xisto Community
Sign in to follow this  
asglu

Php Guest Online Script

Recommended Posts

make an index.php copy and paste this code

<?php$db_host = "localhost";$db_user = "root";$db_pass = "";$db_name = "test";$dbc = mysql_connect($db_host, $db_user, $db_pass);$dbs = mysql_select_db($db_name);$tm = time();$timeout = $tm - (30*60); if($_SERVER["REMOTE_ADDR"]){$ip=$_SERVER["REMOTE_ADDR"];}else{$ip=$_SERVER["HTTP_X_FORWARDED_FOR"];}$brws = explode("(",$_SERVER["HTTP_USER_AGENT"]);$browser = $brws[0];mysql_query("DELETE FROM guest WHERE actvtime <'".$timeout."'");mysql_query("INSERT INTO guest SET  time='".$tm."', ip='".$ip."', browser='".$browser."'");$count = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM guest"));mysql_close();echo "<br/><a href=\"online.php\">Users Online($count[0])</a><br/>";   ?>

the make online.php .copy and paste this code in it


<?php$db_host = "localhost";$db_user = "root";$db_pass = "";$db_name = "test";$dbc = mysql_connect($db_host, $db_user, $db_pass);$dbs = mysql_select_db($db_name);$result = mysql_query("SELECT time ,ip ,browser FROM guest ORDER BY time ")or die(mysql_error());while($row = mysql_fetch_array($result)){echo "$row[1]  $row[2] ";$newtime =$row[0]+(0 *60 *60); echo "<b>".date("D d M y - H:i:s",$newtime)."</b><br/>";		echo "------------<br />";mysql_close();}?>

SQL table


CREATE TABLE `guest` (  `time` int(15) NOT NULL default '0',  `ip` varchar(50) NOT NULL default '',  `browser` varchar(50) NOT NULL default '',  PRIMARY KEY  (`time`))ENGINE=MyISAM DEFAULT CHARSET=latin1;

Edited by asglu (see edit history)

Share this post


Link to post
Share on other sites
Very nice.Php Guest Online ScriptObviously, one has to adjust all formatting and stuff to suit their own site, but I find this script-set to be quite awesome. It's potent and extensible and also I quite like the backward compatibility: allowing for "http_x_forwarded_for" as well as "remote_addr". The SQL table needed is simple, as well. Before I saw this script, I was under the impression that one needed to incorporate a "Cron Job" to regularly check session vars contained in a user table that included both registered and guest entries. Some hosting services provide means to create a "Cron Job", others you need to configure yourself. Either way, I didn't realize that a simple time comparison could do the same trick. I'm still adapting this script for use on my own site (personal) but my intent is to simply track how many people are checking out the site at any given time. My site doesn't have any type of user registration, not even a forum. Like I said it's a "bujois" personal site, and honestly the little "network" is less than 30 strong. No user system needed ...No one's asked for features or anything. Again this is a really nice and simple script (with little overhead, I might add) for use for displaying guests, or in my case just "X Users Viewing". Thanks for posting it, didn't find anything nearly as efficient as this. Everything else I found was far too complex and had too many bells and whistles to shave down all but the essentials. Rawk on!-reply by Vince

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.