Apache-SearchEngineLog
view release on metacpan or search on metacpan
analyse.cgi view on Meta::CPAN
#!/usr/bin/perl -w
# analyse.cgi
# part of Apache::SearchEngineLog
use strict;
use DBI;
use CGI qw#:cgi#;
use Apache;
use vars qw#$DB_DSN $DB_USER $DB_PASSWD $DB_TABLE $DBH $STHS#;
init () unless defined ($DBH);
my $vhost = param ('vhost');
$vhost = '' unless defined $vhost;
my $sort = param ('sort');
$sort = 'uri' unless defined $sort;
if ($sort =~ m#term#i)
{
$sort = 'term';
}
else
{
$sort = 'uri';
}
my $self = (defined $ENV{'SCRIPT_NAME'} ? $ENV{'SCRIPT_NAME'} : 'analyse.cgi');
print <<EOF;
Content-type: text/html
<html>
<head>
<title>Apache::SearchEngineLog - $self</title>
<style type="text/css">
<!--
th { color: black; background: gray; }
td { color: black; background: lightgray; }
//-->
</style>
</head>
<body>
EOF
if (!$vhost)
{
print "<h1>List of virtual hosts</h1>\n\n<p>";
my $first = 1;
my $vhost = get_list ($DBH);
foreach my $v (split (m#,\s*#, $vhost))
{
print "<br />\n" unless $first;
$first = 0;
print qq#<a href="$self?vhost=$v">$v</a>#;
}
print "</p>\n\n";
end_html ();
exit (0);
}
else
{
$vhost =~ s#[^a-zA-Z0-9\-\.]##g;
$vhost || die;
}
foreach my $virtual (split (m#,\s*#, $vhost))
{
my $primsth = $STHS->{$sort}{'prim'};
my $secdsth = $STHS->{$sort}{'secd'};
print qq#<h1>Statistic for $virtual</h1>\n#;
if ($sort eq 'uri')
{
print qq#<p>[ By uri | <a href="$self?vhost=$vhost&sort=term">By term</a> ] #;
}
else
{
print qq#<p>[ <a href="$self?vhost=$vhost&sort=uri">By uri</a> | By term ] #;
}
print qq#[ <a href="$self">Select a different virtual host</a> ]</p>\n#;
print qq#<table>\n#;
$primsth->execute ($virtual) or die $primsth->errstr ();
while (my ($thing, $count) = $primsth->fetchrow_array ())
{
print qq# <tr>\n#
( run in 1.625 second using v1.01-cache-2.11-cpan-f56aa216473 )