git.schokokeks.org
Repositories
Help
Report an Issue
webinterface.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
aebc4ea
Branches
Tags
master
ticket
webinterface.git
modules
vhosts
showstats.php
Diverse XML-Fehler behoben
bernd
commited
aebc4ea
at 2010-03-09 15:12:06
showstats.php
Blame
History
Raw
<?php require_once("inc/base.php"); require_once("vhosts.php"); require_role(ROLE_SYSTEMUSER); $section = 'vhosts_stats'; // Stellt sicher, dass der angegebene VHost dem User gehört $vhost = get_vhost_details($_REQUEST['vhost']); if (! isset($_REQUEST['file'])) { $_REQUEST['file'] = 'index.html'; } if (!preg_match('/((daily_|hourly_|ctry_)?(usage|agent|search|ref|url|site)(_[0-9]+)?|index)\.(png|html)/', $_REQUEST['file'])) { system_failure("Ungültiger Dateiname: »".filter_input_general($_REQUEST['file'])."«"); } $path = '/home/stats/webalizer/data/' . $vhost['fqdn']; $file = $path . '/' . $_REQUEST['file']; if ( is_file($file) ) { DEBUG("opening file ".$file); if (preg_match('/\.png/', $file)) { //Binärdateien header("Content-Type: image/png"); header("Content-Length: " . filesize($file)); header("Content-Transfer-Encoding: binary\n"); $fp = fopen($file, "r"); fpassthru($fp); die(); } $html = iconv('latin9', 'utf8', file_get_contents($file)); DEBUG($html); // Nur content vom HTML $html = preg_replace(':^.*?<BODY[^>]*>(.*)</BODY>.*$:si', '$1', $html); DEBUG($html); // <BR> rewriten $html = preg_replace('/<BR>/', '<BR />', $html); // <HR> rewriten $html = preg_replace('/<HR>/', '<HR />', $html); // <P> rewriten $html = preg_replace('/<P>/', '<BR />', $html); // NOWRAP rewriten $html = preg_replace('/NOWRAP/', 'nowrap="nowrap"', $html); // lowercase tag names and keys $html = preg_replace('/(<[^ ]+ )/e', "strtolower('$1')", $html); $html = preg_replace('/( [A-Z]+=)/e', "strtolower('$1')", $html); // xml-values mit anführungszeichen $html = preg_replace('/=([-0-9a-zA-Z]+)([ >])/', '="$1"$2', $html); // Bilder rewriten $html = preg_replace('_<img ([^>]+[^/])>_', '<img $1 />', $html); // Bilder rewriten $html = preg_replace('/src="((daily_|hourly_|ctry_)?usage(_[0-9]+)?\.png)"/', 'src="showstats?vhost='.$vhost['id'].'&file=$1"', $html); // Interne Links rewriten $html = preg_replace('!href="(./)?((usage|agent|search|ref|url|site|index)(_[0-9]+)?\.html)"!', 'href="showstats?vhost='.$vhost['id'].'&file=$2"', $html); output($html); } else { system_failure("Die Statistiken konnten nicht gefunden werden. Beachten Sie bitte, dass die Erstellung regelmäßig nachts geschieht. Neu in Auftrag gegebene Statistiken können Sie erst am darauffolgenden Tag betrachten."); }