zipdog44
asked on
Script to Count Links/Page Hits
Hello,
Looking for CGI code (probably in perl) that keeps a count of the number of times each page in site is accessed as well as the number of times the links on the pages are hit on a monthly basis broken down in hourly time intervals. Output continually updates a MMMLinkCount.txt file and MMMPageCount.txt report in ./data directory with | delimiter. These files then can be loaded into Excel for creating spreadsheets and graphics.
JanLinkCount.Txt:
Date|Time|Page|Link|# Link Hits
01-01-01|00:00-01:00|index .htm|faq|5
01-01-01|00:00-01:00|index .htm|guest book|7
etc.
JanPageCount.txt:
Date|Time|Page|Link|# Link Hits
01-01-01|00:00-01:00|index .htm|12
etc.
Thanks in advance
Looking for CGI code (probably in perl) that keeps a count of the number of times each page in site is accessed as well as the number of times the links on the pages are hit on a monthly basis broken down in hourly time intervals. Output continually updates a MMMLinkCount.txt file and MMMPageCount.txt report in ./data directory with | delimiter. These files then can be loaded into Excel for creating spreadsheets and graphics.
JanLinkCount.Txt:
Date|Time|Page|Link|# Link Hits
01-01-01|00:00-01:00|index
01-01-01|00:00-01:00|index
etc.
JanPageCount.txt:
Date|Time|Page|Link|# Link Hits
01-01-01|00:00-01:00|index
etc.
Thanks in advance
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
http://www.webattack.com/screenshots/azurelog.htm
ASKER
Thanks for the link.
Some problems I see.
Using Apache web server on solaris.
Products seem geared to Microsoft.
None of the products seem to count number of
time a link is hit.
I think a new product needs development to
get this information what about u?. If interested
I would like to work with u on developing the product.
I think it could be a success?
Thanks
Tom
Some problems I see.
Using Apache web server on solaris.
Products seem geared to Microsoft.
None of the products seem to count number of
time a link is hit.
I think a new product needs development to
get this information what about u?. If interested
I would like to work with u on developing the product.
I think it could be a success?
Thanks
Tom
ASKER
Log file does not record link information but I found this solution in "Writing CGI Applications with Perl" by kevin Meltzer and Brent Michalski for keeping a count of links in a MySql database
Create table
CREATE TABLE click_tracker (
PAGE varchar(255) NOT NULL,
COUNT int(11) NOT NULL,
LAST_ACCESS datetime
);
Script:
#!/usr/bin/perl ?wT
# track.cgi
use strict;
use DBI;
use CGI qw(:standard);
use POSIX;
my $dbname = 'tomatocans';
my $dbhost = 'localhost';
my $dsn = "DBI:mysql:database=$dbnam e;host=$db host";
my $dbh=DBI-connect($dsn,"tom atocans"," nakedtest" );
if (!defined($dbh)) {
print header; print "\nerror: There is a problem connecting to the MySQL database:\n";
print DBI-errmsg;
print "-" x 25; exit;
}
my $url = param('url');
my $time = strftime("%Y-%m/-%d %I:%M:%S", localtime);
my $query = qq(update click_tracker set COUNT=COUNT+1, LAST_ACCESS='$time' where PAGE='$url');
my $sth = $dbh-prepare($query);
if ($sth->execute <1){
$query == qq(insert into click_tracker(PAGE,COUNT,L AST_ACCESS ) Values('$url', 1, '$time'));
$sth = $dbh->prepare($query);
$sth-execute;
}
$dbh-disconnect;
print redirect($url);
Create table
CREATE TABLE click_tracker (
PAGE varchar(255) NOT NULL,
COUNT int(11) NOT NULL,
LAST_ACCESS datetime
);
Script:
#!/usr/bin/perl ?wT
# track.cgi
use strict;
use DBI;
use CGI qw(:standard);
use POSIX;
my $dbname = 'tomatocans';
my $dbhost = 'localhost';
my $dsn = "DBI:mysql:database=$dbnam
my $dbh=DBI-connect($dsn,"tom
if (!defined($dbh)) {
print header; print "\nerror: There is a problem connecting to the MySQL database:\n";
print DBI-errmsg;
print "-" x 25; exit;
}
my $url = param('url');
my $time = strftime("%Y-%m/-%d %I:%M:%S", localtime);
my $query = qq(update click_tracker set COUNT=COUNT+1, LAST_ACCESS='$time' where PAGE='$url');
my $sth = $dbh-prepare($query);
if ($sth->execute <1){
$query == qq(insert into click_tracker(PAGE,COUNT,L
$sth = $dbh->prepare($query);
$sth-execute;
}
$dbh-disconnect;
print redirect($url);
ASKER
Your answer helped raise more questions. See last comment to see how I am proposing to solve Link Count. Still need to solve page count but i did not get any response from you so I wanted to remove question for EE.
If u want to participate more actively in the solution please feel free to email me at tomatocans@aol.com
Thanks
If u want to participate more actively in the solution please feel free to email me at tomatocans@aol.com
Thanks
I was on vaccation...
no problem, I will email you with some help!
as your question is interesting.
Regards,
Bob
no problem, I will email you with some help!
as your question is interesting.
Regards,
Bob