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 )