
$logdatei_name=get_first_log();
if(!is_file($logdatei_name)) die('Fehler
Die Datei "'.$logdatei_name.'" konnte nicht erstellt werden. Bitte überprüfen Sie "config.php" und die Rechte des Ordners in dem die Logdateien liegen bzw. ob der Ordner überhaupt existiert.
');
// Hits, Wochentage, Stunden, Monate und Tage auf 0 setzen
// Wochentage
if($config_stat_wochentage_sonntag_erst) $wochentage[0]=0;
for($i=1;$i<=6;$i++) $wochentage[$i]=0;
if(!$config_stat_wochentage_sonntag_erst) $wochentage[7]=0;
// Hits
$hits['gesamt']=0;
$hits['gesamt_ip']=0;
$hits['diesen_monat']=0;
$hits['letzten_monat']=0;
$hits['user_online']=0;
$hits['max']=0;
// Stunden
for($i=0;$i<=23;$i++) $stunden[$i]=0;
// Monate
for($i=1;$i<=12;$i++) $monate[$i]=0;
// Tage
for($i=1;$i<=$time['tage'];$i++) $tage[$i]=0;
// Lesen der Scroll-Einstellung
if(isset($_SESSION['scroll'])) $config_stat_scroll=$_SESSION['scroll'];
// Lesen der IP-Einstellungen
foreach($module as $modul)
{
if(!isset($_SESSION['ip_'.$modul])) $_SESSION['ip_'.$modul]=1;
if(isset($_GET['ip_'.$modul]))
{
if($_SESSION['ip_'.$modul]!=$_GET['ip_'.$modul]) $changed[$modul]=true;
@$_SESSION['ip_'.$modul]=$_GET['ip_'.$modul];
}
}
foreach($module as $modul) @$ipE[$modul]=$_SESSION['ip_'.$modul];
foreach($ipE as $schluessel => $wert)
{
if(!isset($ipE[$schluessel])) $wert=1;
if($wert==0)
{
$ipEN[$schluessel]='aus';
$ipENG[$schluessel]='an';
$ipEG[$schluessel]=1;
}
else
{
$ipE[$schluessel]=1;
$ipEN[$schluessel]='an';
$ipENG[$schluessel]='aus';
$ipEG[$schluessel]=0;
}
}
// Lesen der Diagramm-Einstellungen
foreach($module_diagramme as $modul)
{
if(isset($_GET['diagramm_'.$modul])) @$_SESSION['diagramm_'.$modul]=$_GET['diagramm_'.$modul];
@$diagrammE[$modul]=$_SESSION['diagramm_'.$modul];
}
foreach($diagrammE as $schluessel => $wert)
{
if(!isset($diagrammE[$schluessel])) $wert=0;
if($wert==0)
{
$diagrammEN[$schluessel]='Torten';
$diagrammENG[$schluessel]='Balken';
$diagrammEG[$schluessel]=1;
}
else
{
$diagrammE[$schluessel]=1;
$diagrammEN[$schluessel]='Balken';
$diagrammENG[$schluessel]='Torten';
$diagrammEG[$schluessel]=0;
}
}
// Lesen der Limit Einstellungen
foreach($module_limit as $modul)
{
if(isset($_GET[$modul.'_all'])) $_SESSION[$modul.'_all']=$_GET[$modul.'_all'];
elseif(!isset($_SESSION[$modul.'_all'])) $_SESSION[$modul.'_all']=0;
}
// Lesen der Referer-Tree-Einstellung
if(isset($_GET['referer_tree']))
{
if($_GET['referer_tree']=='1') $_SESSION['referer_tree']=true;
elseif($_GET['referer_tree']=='0') $_SESSION['referer_tree']=false;
}
elseif(!isset($_SESSION['referer_tree'])) $_SESSION['referer_tree']=$config_stat_referer_tree;
// Setzen von Kalender-Einstellungen, falls leer
if((!isset($_SESSION['kalender_tage_spanne_start']) || !isset($_SESSION['kalender_tage_spanne_ende'])) && !isset($_SESSION['kalender_tage_aufSpanne']))
{
$_SESSION['kalender_tage_spanne_start']=mktime(0,0,0,$time['monat'],1,$time['jahr']);
$_SESSION['kalender_tage_spanne_ende']=mktime(0,0,0,$time['monat']+1,1,$time['jahr'])-1;
$_SESSION['kalender_tage_aufSpanne']=true;
$_SESSION['kalender_tage_titel']=$time['monat'].'/'.$time['jahr'];
}
if((!isset($_SESSION['kalender_monate_spanne_start']) || !isset($_SESSION['kalender_monate_spanne_ende'])) && !isset($_SESSION['kalender_monate_aufSpanne']))
{
$_SESSION['kalender_monate_spanne_start']=mktime(0,0,0,1,1,$time['jahr']);
$_SESSION['kalender_monate_spanne_ende']=mktime(23,59,59,12,31,$time['jahr']);
$_SESSION['kalender_monate_aufSpanne']=true;
$_SESSION['kalender_monate_titel']=$time['jahr'];
}
foreach($module_kalender as $modul)
{
if(!isset($_SESSION['kalender_'.$modul.'_aufSpanne']))
{
$_SESSION['kalender_'.$modul.'_aufSpanne']=false;
$_SESSION['kalender_'.$modul.'_spanne_start']=0;
$_SESSION['kalender_'.$modul.'_spanne_ende']=0;
}
}
// Von kalender.php uebergebene oder durch "aktualisieren"-Button ausgeloeste changed-daten auslesen
if(isset($_GET['changed']) && isset($modul[$_GET['changed']])) $changed[$_GET['changed']]=true;
// Cache auslesen
$all_cached=true;
foreach ($module as $modul)
{
if($config_stat_cache && isset($_SESSION['modul_'.$modul.'_werte']) && !$changed[$modul] && (!isset($_GET['reload']) || $_GET['reload']!='true'))
{
$$modul=$_SESSION['modul_'.$modul.'_werte'];
$cached[$modul]=true;
}
else
{
$cached[$modul]=false;
$all_cached=false;
}
}
// Fortsezen?
if(isset($_GET['goon']) && $_GET['goon'])
{
$vars_to_load=array_merge(array('pos','letzte_daten','logdatei_name','hits_user_tag','ips','ips_dateien','ips_online'),$module);
foreach($vars_to_load as $var) $$var=$_SESSION['goon_'.$var];
unset($vars_to_load);
$handle=fopen($logdatei_name,'r');
fseek($handle,$_SESSION['goon_pos']);
}
else $handle=fopen($logdatei_name,'r');
$default_all_cached=false;
// starten des auslesen
if(!$all_cached)
{
$user_online_check_val=$time['stamp']-60*$config_stat_user_online; // IP-Sperren-vergleichswert
// Robotsdatei einlesen
$robots=file('keywords/robots.txt');
// Browserdatei einlesen
$browsers=file('keywords/browser.txt');
$i=0;
while(isset($browsers[$i]))
{
if(strstr($browsers[$i],'='))
{
$browser_string[$i]=trim(substr($browsers[$i],0,strpos($browsers[$i],'=')));
$browser_name[$i]=trim(substr($browsers[$i],strpos($browsers[$i],'=')+1));
}
else
{
$browser_string[$i]=trim($browsers[$i]);
$browser_name[$i]=trim($browsers[$i]);
}
$i++;
}
$browser_anz=$i-1;
// Systeme-datei einlesen
$systems=file('keywords/systeme.txt');
$i=0;
while(isset($systems[$i]))
{
if(strstr($systems[$i],'='))
{
$system_string[$i]=trim(substr($systems[$i],0,strpos($systems[$i],'=')));
$system_name[$i]=trim(substr($systems[$i],strpos($systems[$i],'=')+1));
}
else
{
$system_string[$i]=trim($systems[$i]);
$system_name[$i]=trim($systems[$i]);
}
$i++;
}
$system_anz=$i-1;
// Query-Regex-Datei einlesen
$queryregex=file('keywords/queryregex.txt');
foreach($queryregex as $regex) $queryregex_str[trim(substr($regex,0,strpos($regex,"\t")))]=trim(substr($regex,strpos($regex,"\t")+1));
$fertig=false;
$diesen_monat_start=mktime(0,0,0,$time['monat'],1,$time['jahr']);
$diesen_monat_ende=mktime(0,0,0,$time['monat']+1,1,$time['jahr'])-1;
$letzten_monat_start=mktime(0,0,0,$time['monat']-1,1,$time['jahr']);
$letzten_monat_ende=mktime(0,0,0,$time['monat'],1,$time['jahr'])-1;
// Default-File-Cache
if($config_stat_default_file_cache)
{
// checkDefault
$default=true;
foreach($module as $modul)
{
if($_SESSION['ip_'.$modul]!=1 || (($modul!='tage' && $modul!='monate' && $modul!='hits') && $_SESSION['kalender_'.$modul.'_aufSpanne']!=false))
{
$default=false;
break;
}
}
if($_SESSION['kalender_tage_spanne_start']!=mktime(0,0,0,$time['monat'],1,$time['jahr']) || $_SESSION['kalender_tage_spanne_ende']!=(mktime(0,0,0,$time['monat']+1,1,$time['jahr'])-1) || $_SESSION['kalender_tage_aufSpanne']!=true || $_SESSION['kalender_monate_spanne_start']!=mktime(0,0,0,1,1,$time['jahr']) || $_SESSION['kalender_monate_spanne_ende']!=mktime(23,59,59,12,31,$time['jahr']) || $_SESSION['kalender_monate_aufSpanne']!=true) $default=false;
$default_filename='default_'.md5($config_logdatei_ordner).'.php';
}
// include Cache
if($config_stat_default_file_cache && $default && is_file('cache/'.$default_filename) && (!isset($_GET['clearcache']) || $_GET['clearcache']!='true'))
{
require_once('cache/'.$default_filename);
if(isset($save_monat) && isset($save_jahr) && ($save_monat!=$time['monat'] || $save_jahr!=$time['jahr'])) // Monatswechsel
{
$tage=array();
for($i=1;$i<=$time['tage'];$i++) $tage[$i]=0;
if($save_jahr!=$time['jahr']) // jahreswechsel
{
$monate=array();
for($i=1;$i<=12;$i++) $monate[$i]=0;
}
if($save_monat+0==$time['monat']-1 || ($save_monat=='12' && $time['monat']=='01')) $hits['letzten_monat']=$hits['diesen_monat'];
else $hits['letzten_monat']=0;
$hits['diesen_monat']=0;
}
// user noch online?
if(isset($usr_on_stamp))
{
foreach($usr_on_stamp as $ip=>$stamp)
{
if($stamp<$user_online_check_val) unset($usr_on_stamp[$ip]);
else $ips_online[$ip]=floor($stamp/60/$config_stat_user_online);
}
$hits['user_online']=count($usr_on_stamp);
}
else $hits['user_online']=0;
$handle=fopen($logdatei_name,'r');
if(isset($pos)) fseek($handle,$pos);
if(ftell($handle)==filesize($logdatei_name)) // Alles bereits im Cache
{
$fertig=true;
$default_all_cached=true;
}
}
// Starte Auswertung
while(!$fertig)
{
if(!$config_logdatei_maxsize) $zeile=fgets($handle); // aus performance-gruenden wird ohne splitten auf eine funktion verzichtet
else @$zeile=get_next_line();
if($zeile===false) break;
$daten=explode('#', $zeile);
if(!is_array($daten) || count($daten)<5) continue;
if($config_log_ver==1.5) $daten=convert_log_data($daten); // 1.5 logs in 1.6 konvertieren
elseif($config_log_ver==1.6 && $config_log_shrinked) // "kompression"
{
foreach($daten as $id=>$data)
{
$data=trim($data);
if($data!='^') $letzte_daten[$id]=$data;
else $daten[$id]=$letzte_daten[$id];
}
}
foreach($robots as $robot)
{
if(strpos($daten[4],trim($robot))!==false) { continue 2; }
}
$timecontrol=floor($daten[1]/60/$config_ip_sperre_zeit);
// Gesamthits
if(!$cached['hits']) $hits['gesamt']++;
// Dateien
if(!$cached['dateien'])
{
if(isset($config_stat_dateien_delete) && is_array($config_stat_dateien_delete)) foreach($config_stat_dateien_delete as $delete_this) $daten[3]=str_replace($delete_this,'',$daten[3]);
if(isset($config_stat_dateien_replace) && is_array($config_stat_dateien_replace)) foreach($config_stat_dateien_replace as $from=>$to) $daten[3]=str_replace($from,$to,$daten[3]);
if(isset($config_stat_dateien_preg_replace) && is_array($config_stat_dateien_preg_replace)) foreach($config_stat_dateien_preg_replace as $from=>$to) $daten[3]=preg_replace($from,$to,$daten[3]);
if(($ipE['dateien']==0 || (!isset($ips_dateien[$daten[2].'#'.$daten[3]]) || $ips_dateien[$daten[2].'#'.$daten[3]]!=$timecontrol)) && (!$_SESSION['kalender_dateien_aufSpanne'] || ($_SESSION['kalender_dateien_spanne_start']<=$daten[1] && $_SESSION['kalender_dateien_spanne_ende']>$daten[1])))
{
@$dateien[$daten[3]]++;
}
@$ips_dateien[$daten[2].'#'.$daten[3]]=$timecontrol;
}
// User online
if(!$cached['hits'] && $daten[1]>=$user_online_check_val)
{
if(!isset($ips_online[$daten[2]]) || $ips_online[$daten[2]]!=floor($daten[1]/60/$config_stat_user_online))
{
$hits['user_online']++;
// Fuer Default-Cache
$usr_on_stamp[$daten[2]]=$daten[1];
}
@$ips_online[$daten[2]]=floor($daten[1]/60/$config_stat_user_online);
}
// Globale IP-Sperre: Greift wenn alle IP-Sperren an sind (default) -> bessere Performance
if(isset($ips[$daten[2]]) && $ips[$daten[2]]==$timecontrol) $reload=true; else $reload=false;
@$ips[$daten[2]]=$timecontrol;
$ip_sperre=true; foreach($ipE as $ip) if($ip==0) $ip_sperre=false;
if(!$reload || !$ip_sperre)
{
// Hits
if(!$cached['hits'])
{
// Gesamthits mit ip-sperre
if(!$reload) $hits['gesamt_ip']++;
// Hits diesen Monat mit ip-sperre
if(!$reload && $diesen_monat_start<=$daten[1] && $diesen_monat_ende>$daten[1]) $hits['diesen_monat']++;
// Hits letzten Monat mit ip-sperre
if(!$reload && $letzten_monat_start<=$daten[1] && $letzten_monat_ende>$daten[1]) $hits['letzten_monat']++;
}
if($config_log_ver!=1.5)
{
$datum=getDateFast($daten[1]);
$daten['w']=$datum[4];
$daten['H']=$datum[3];
$daten['d']=$datum[2];
$daten['m']=$datum[1];
$daten['Y']=$datum[0];
unset($datum);
}
// User / Tag fuer Max & Durchschnitt
if(!$reload)
{
@$hits_user_tag[$daten['d'].'.'.$daten['m'].'.'.$daten['Y']]++;
}
//Wochentage
if(!$cached['wochentage'])
{
if((!$reload || $ipE['wochentage']==0) && (!$_SESSION['kalender_wochentage_aufSpanne'] || ($_SESSION['kalender_wochentage_spanne_start']<=$daten[1] && $_SESSION['kalender_wochentage_spanne_ende']>$daten[1])))
{
if(!$config_stat_wochentage_sonntag_erst && $daten['w']==0) $daten['w']=7;
$wochentage[$daten['w']]++;
}
}
// Stunden
if(!$cached['stunden'])
{
if((!$reload || $ipE['stunden']==0) && (!$_SESSION['kalender_stunden_aufSpanne'] || ($_SESSION['kalender_stunden_spanne_start']<=$daten[1] && $_SESSION['kalender_stunden_spanne_ende']>$daten[1])))
{
$stunden[intval($daten['H'])]++;
}
}
// Monate
if(!$cached['monate'])
{
if((!$reload || $ipE['monate']==0) && (!$_SESSION['kalender_monate_aufSpanne'] || ($_SESSION['kalender_monate_spanne_start']<=$daten[1] && $_SESSION['kalender_monate_spanne_ende']>$daten[1])))
{
$monate[intval($daten['m'])]++;
}
}
// Tage
if(!$cached['tage'])
{
if((!$reload || $ipE['tage']==0) && (!$_SESSION['kalender_tage_aufSpanne'] || ($_SESSION['kalender_tage_spanne_start']<=$daten[1] && $_SESSION['kalender_tage_spanne_ende']>$daten[1])))
{
$tage[intval($daten['d'])]++;
}
}
// Betriebssystem
if(!$cached['systeme'])
{
if((!$reload || $ipE['systeme']==0) && (!$_SESSION['kalender_systeme_aufSpanne'] || ($_SESSION['kalender_systeme_spanne_start']<=$daten[1] && $_SESSION['kalender_systeme_spanne_ende']>$daten[1])))
{
$i=0; $match=false;
while($i<=$system_anz && !$match) // teste alle Systeme durch bis gefunden
{
if(empty($system_name[$i]))
{
$match=true;
break;
}
if(strpos($daten[4],$system_string[$i])!==false)
{
@$systeme[$system_name[$i]]++;
$match=true;
}
$i++;
}
if(!$match) @$systeme['Sonstige']++;
}
}
// Browser
if(!$cached['browser'])
{
if((!$reload || $ipE['browser']==0) && (!$_SESSION['kalender_browser_aufSpanne'] || ($_SESSION['kalender_browser_spanne_start']<=$daten[1] && $_SESSION['kalender_browser_spanne_ende']>$daten[1])))
{
$i=0; $match=false;
while($i<=$browser_anz && !$match) // teste alle Browser durch bis gefunden
{
if(empty($browser_name[$i]))
{
$match=true;
break;
}
if(strpos($daten[4],$browser_string[$i])!==false)
{
@$browser[$browser_name[$i]]++;
$match=true;
}
$i++;
}
if(!$match) @$browser['Sonstige']++;
}
}
// Aufloesung
if(!$cached['aufloesungen'])
{
if((!$reload || $ipE['aufloesungen']==0) && (!$_SESSION['kalender_aufloesungen_aufSpanne'] || ($_SESSION['kalender_aufloesungen_spanne_start']<=$daten[1] && $_SESSION['kalender_aufloesungen_spanne_ende']>$daten[1])))
{
if(empty($daten[5])) $daten[5]='Nicht gespeichert';
@$aufloesungen[trim($daten[5])]++;
}
}
// Farbtiefe
if(!$cached['farbtiefen'] && isset($daten[7]))
{
$daten[7]=trim($daten[7]);
if((!$reload || $ipE['farbtiefen']==0) && (!$_SESSION['kalender_farbtiefen_aufSpanne'] || ($_SESSION['kalender_farbtiefen_spanne_start']<=$daten[1] && $_SESSION['kalender_farbtiefen_spanne_ende']>$daten[1])))
{
if(empty($daten[7]) || !is_numeric($daten[7]) || $daten[7]>=100 || $daten[7]<0)
{
if($config_stat_farbtiefen_unsaved) @$farbtiefen['Nicht gespeichert']++;
}
else
{
@$farbtiefen[$daten[7]]++;
}
}
}
// Referer
if(!$cached['referer'])
{
if(isset($config_stat_referer_replace) && is_array($config_stat_referer_replace)) foreach($config_stat_referer_replace as $from=>$to) @$daten[6]=str_replace($from,$to,$daten[6]);
if($config_stat_limit['referer']!=0 && (!$reload || $ipE['referer']==0) && (!$_SESSION['kalender_referer_aufSpanne'] || ($_SESSION['kalender_referer_spanne_start']<=$daten[1] && $_SESSION['kalender_referer_spanne_ende']>$daten[1])))
{
if(!isset($daten[6])) $daten[6]='';
$daten[6]=trim($daten[6]);
if(!empty($daten[6]) || $config_stat_referer_leer)
{
// referer ignorieren
$ignore=false;
if(is_array($config_stat_referer_ignore))
{
foreach($config_stat_referer_ignore as $page) if(strpos($daten[6], $page)===0) $ignore=true;
}
elseif(is_string($config_stat_referer_ignore)) if(strpos($daten[6], $page)===0) $ignore=true;
if(!$ignore) @$referer[$daten[6]]++;
}
}
}
// Keywords
if(!$cached['keywords'])
{
if($config_stat_limit['keywords']!=0 && (!$reload || $ipE['keywords']==0) && (!$_SESSION['kalender_keywords_aufSpanne'] || ($_SESSION['kalender_keywords_spanne_start']<=$daten[1] && $_SESSION['kalender_keywords_spanne_ende']>$daten[1])))
{
if(!isset($daten[6])) $daten[6]='';
else
{
foreach($queryregex_str as $regex=>$key)
{
if(preg_match($regex,$daten[6],$keyword))
{
$keyword[$key]=urldecode($keyword[$key]);
// Sortiere die keywords
$keyword[$key]=explode(' ',$keyword[$key]);
sort($keyword[$key]);
$keyword[$key]=implode(' ',$keyword[$key]);
// kuerzen
if(strlen($keyword[$key])>35)
$keyword[$key]=''.htmlentities(substr($keyword[$key],0,30)).'[...]';
else $keyword[$key]=htmlentities($keyword[$key]);
@$keywords[$keyword[$key]]++;
break;
}
}
}
}
}
}
}
// Aktualisiere counter.log
$counterfile_path=$config_logdatei_ordner.'/'.$config_count_file;
@$counterfile_handle=fopen($counterfile_path,'r+');
if($counterfile_handle===false)
{
echo 'Counter-Logdatei konnte nicht gelesen werden. Versuche neue zu erstellen.';
@$counterfile_handle=fopen($counterfile_path,'w');
if($counterfile_handle===false) echo ' Erstellen fehlgeschlagen (Rechte?). Dies stellt keinen Datenverlust dar. Siehe FAQ.';
else
{
fwrite($counterfile_handle,"0\n".$hits['gesamt_ip']."\n".$hits['gesamt']);
fclose($counterfile_handle);
echo ' Erstellen erfolgreich. Dies stellt kein Problem dar, es sind keine Daten verloren gegangen.';
}
}
else
{
fgets($counterfile_handle); // 1. Zeile (readpos) unangetastet lassen
fwrite($counterfile_handle,$hits['gesamt_ip']."\n".$hits['gesamt']);
fclose($counterfile_handle);
}
}
// Hits max
if(isset($hits_user_tag))
{
arsort($hits_user_tag);
foreach($hits_user_tag as $tag => $int)
{
$hits['max_tag']=$tag;
$hits['max']=$int;
break;
}
}
// Durchschnitt User/Tag
if(isset($hits_user_tag))
{
$hits_user_anz_tage=count($hits_user_tag);
$hits['durchschnitt']=str_replace('.',',',round($hits['gesamt_ip']/$hits_user_anz_tage,2));
}
// Hits pro User
@$hits['proUser']=str_replace('.',',',round($hits['gesamt']/$hits['gesamt_ip'],2));
// Maximal-Werte
foreach($module as $modul)
{
if(isset($$modul) && ($config_stat_lange_balken || !in_array($modul,$module_limit)))
{
foreach($$modul as $eintrag=>$wert)
{
if(@$max[$modul]<$wert)
{
$max[$modul]=$wert;
if(!in_array($modul,$module_limit)) $max[$modul.'_name']=$eintrag;
}
}
}
}
// Ende der Auswertung.
// Default-FileCache: Ergebnisse cachen
if($config_stat_default_file_cache && !$all_cached && $default && !$default_all_cached) save_results('dfc');
// Ausgeben der Ergebnisse
?>
Hits |
| Gesamt-Hits: | |  |
| Gesamt-Hits: | |  |
| Hits diesen Monat: | |  |
| Hits letzten Monat: | |  |
| User online: | |  |
| Maximum am : | |  |
| Durchschnitt Hits/Tag | |  |
| Hits/User | |  |
|
|
|
|
|
|
  Hits/Suchbegriff (gesamt) |
| Suchbegriff | Anzahl | Anteil |
|---|
| Keine Zugriffe | 0 |   |
|
|
| Bitte warten... |
|
Die von Ihnen gewünschte Aktion benötigt einen Moment. Eventuell muss die Statistik neu ausgewertet werden, was einige Zeit in Anspruch nimmt.
Bitte warten ...
|