<?
// Counter Version 1.1 vom 01.08.2010
// Einstellmöglichkeit ob bei dem Auftreten eines Fehlers eine Email gesendet werden soll.
$emailsenden = "On";
// Funktionen zu diesem PHP-File
function Counter_speichern($dateiname, $dateiinhalt, $wert) {
global $emailsenden;
if (isset($wert)) {
Schreiben($dateiname, $dateiinhalt, $wert);
}
else {if ($emailsenden == "On") {mail ( 'counter@datenschwamm.de' , 'Counter ' . $dateiname . ' wurde 1x nicht gespeichert.' ,
'Der im Betreff genannte Counter konnte einen Eintrag nicht vornehmen.' , 'From:counter@datenschwamm.de');}}
}
function Fehlerbehandlung_Leere_Datei($dateiname, $dateiinhalt) {
global $emailsenden;
$backupdateiname = $dateiname ."backup";
$dateiinhalt = @fopen($dateiname,"r");
$wert = @fread ($dateiinhalt,filesize($dateiname));
fclose($dateiinhalt);
$dateiinhalt = @fopen($backupdateiname,"r");
$backupwert = @fread ($dateiinhalt,filesize($backupdateiname));
fclose($dateiinhalt);
if ($backupwert > $wert) {
$dateiinhalt = @fopen($dateiname, "w");
flock($dateiinhalt,2);
fwrite($dateiinhalt, $backupwert);
flock($dateiinhalt,3);
fclose($dateiinhalt);
}
if ($emailsenden == "On") {mail ( 'counter@datenschwamm.de' , 'Restore für den Counter ' . $dateiname . ' vorgenommen.' ,
'Der im Betreff genannte Counter ist ausgefallen und wurde auf das Backup zurückgesetzt. Der Wert ist '. $backupwert .'.' ,
'From:counter@datenschwamm.de');}
}
function Anlegen($dateiname, $dateiinhalt, $wert) {
global $emailsenden;
$dateiinhalt = fopen($dateiname, "w");
fputs($dateiinhalt,$wert);
fclose($dateiinhalt);
}
function Schreiben($dateiname, $dateiinhalt, $wert) {
global $emailsenden;
if ($wert >0) {
$dateiinhalt = @fopen($dateiname, "w");
flock($dateiinhalt,2);
fwrite($dateiinhalt, $wert);
flock($dateiinhalt,3);
fclose($dateiinhalt);
}
$backupdateiname = $dateiname ."backup";
if (!file_exists($backupdateiname)) {
Anlegen($backupdateiname, $dateiinhalt, "0");
}
$dateiinhalt = fopen($backupdateiname,"r");
$backupwert = @fread ($dateiinhalt,filesize($backupdateiname));
fclose($dateiinhalt);
if ($backupwert < $wert+1) {
$backupwert++;
$dateiinhalt = @fopen($backupdateiname, "w");
flock($dateiinhalt,2);
fwrite($dateiinhalt, $backupwert);
flock($dateiinhalt,3);
fclose($dateiinhalt);
}
}
// Zählt die Gesamtbesucher mit Cookie
if ($_SERVER['SCRIPT_NAME'] == "/index.php"){
$dateiname = "countalle.txt";
if (!file_exists($dateiname)) {
Anlegen($dateiname, $dateiinhalt, "1");
}
}
else {$dateiname = "../countalle.txt";}
$dateiinhalt = fopen($dateiname,"r");
$counter = @fread ($dateiinhalt,filesize($dateiname));
fclose($dateiinhalt);
$besucher = $_COOKIE['besucherds'];
if (!isset($besucher)) {
setcookie ("besucherds","ja");
$counter++;
Counter_speichern($dateiname, $dateiinhalt, $counter);
}
if (filesize($dateiname) <= 0) {
Fehlerbehandlung_Leere_Datei($dateiname, $dateiinhalt);
}
$datumcounterstart = mktime(11, 30, 0, 8, 1, 2010);
$divident = (time() - $datumcounterstart)/60/60/24;
$counterdurchschnitttgl = $counter / $divident;
$besucherheute = "besucher_am_" . strftime("%d.%m.%Y", time());
if ($_SERVER['SCRIPT_NAME'] == "/index.php"){
$dateiname = "stats/$besucherheute.txt";}
else {$dateiname = "../stats/$besucherheute.txt";}
if (!file_exists($dateiname)) {
Anlegen($dateiname, $dateiinhalt, "0");
}
$dateiinhalt = @fopen($dateiname,"r");
$counterbesucherheute = @fread ($dateiinhalt,filesize($dateiname));
@fclose($dateiinhalt);
$besucher = $_COOKIE['besucherds'];
if (!isset($besucher)) {
$counterbesucherheute++;
Counter_speichern($dateiname, $dateiinhalt, $counterbesucherheute);
}
if (@filesize($dateiname) <= 0) {
Fehlerbehandlung_Leere_Datei($dateiname, $dateiinhalt);
}
// Zählt die Seitenaufrufe dieser Seite
$OffeneSeite = str_replace("/","",$_SERVER['SCRIPT_NAME'] );
$OffeneSeite = str_replace(".php","",$OffeneSeite );
$dateiname = "counter" . $OffeneSeite .".txt";
if (!file_exists($dateiname)) {
Anlegen($dateiname, $dateiinhalt, "0");
}
$dateiinhalt = fopen($dateiname,"r");
$counterseitenhier = @fread ($dateiinhalt,filesize($dateiname));
fclose($dateiinhalt);
$counterseitenhier++;
Counter_speichern($dateiname, $dateiinhalt, $counterseitenhier);
if (filesize($dateiname) <= 0) {
Fehlerbehandlung_Leere_Datei($dateiname, $dateiinhalt);
}
// Zählt die Seitenaufrufe insgesamt
if ($_SERVER['SCRIPT_NAME'] == "/index.php"){
$dateiname = "countseitenalle.txt";
if (!file_exists($dateiname)) {
Anlegen($dateiname, $dateiinhalt, "0");
}
}
else {$dateiname = "../countseitenalle.txt";
}
$dateiinhalt = fopen($dateiname,"r");
$counterseiten = @fread ($dateiinhalt,filesize($dateiname));
fclose($dateiinhalt);
$counterseiten++;
Counter_speichern($dateiname, $dateiinhalt, $counterseiten);
if (filesize($dateiname) <= 0) {
Fehlerbehandlung_Leere_Datei($dateiname, $dateiinhalt);
}
?>
include ("../include/counter.php"); aufgerufen.
Dort wo das Ergebnis des Counters angezeigt wird, passiert dies wie folgt: