Besucherzähler - Website X5 Helpsite

Logo Schriftzug
Logo WSX5
Newsletter anmelden
Scan QR or Download Android App

Direkt zum Seiteninhalt

Besucherzähler

Scripte > Attachment

Einfacher Besucherzähler mit Reloadsperre

Besucherzähler, sind in der heutigen Zeit nicht mehr wegzudenken. Webmaster und auch User möchten gern sehen, wie oft die Seiten besucht werden. Dieser Besucherzähler benötigt keine Datenbank, da die Werte in einer Datendatei ".csv" gespeichert werden. Werden mehrere Zähler eingesetzt (z. B. für Seitenaufrufzählungen), empfiehlt sich die direkte Einbindung des Codes. Dabei muss nur beachtet werden, dass die Datendateien verschieden benannt werden, z. B. zdatei1.csv, zdatei2.csv, usw. Der Vorteil einer Einbindung per <php include... > ist, dass eine Änderungen nur an einer Datei ausgeführt werden muss. Der Ordner und Dateiname werden dazu im Skript entsprechend eingetragen. Der Zähler kann komplett farblich der Homepage angepasst werden. Breite des Zählers, Schriftgröße und Zeilenabstände sind ebenfalls anpassbar. Die Konfiguration ist den Verhältnissen im Code anzupassen!
ZIP-Datei in ein beliebiges Verzeichnis auf dem PC entpacken und das Verzeichnis "wsX5Obj" auf den Webserver in das Root-Verzeichnis kopieren. HTML-Code in den BODY-Bereich <body>...</body> der aufrufende Datei einfügen.
Eine demo.php ist beigefügt, die zum Test in das Root-Verzeichnis des Webservers kopiert werden kann.
Aufruf: "http://www.domain.tld/demo.php". Die aufrufenden Dateien müssen die Dateiendung .php aufweisen.
Download Button
Downloads:
Heute: 4
Gestern: 3
Gesamt: 10886
User online: 1

Rekord: 14

Der Zeilenvariante lässt sich auch im Footer der Homepage gut einfügen, der Code sollte dann angepasst werden.

Heute: 4  |  Gestern: 3  |  Gesamt: 10886  |  User online: 1  |  Rekord: 14
Code für den <BODY> Bereich
Blockvariante:
<?php include("wsX5Obj/Obj162_0/counter_ver.php"); ?>

Zeilenvariante:
<?php include("wsX5Obj/Obj162_0/counter_hor.php"); ?>

Alternativ kann auch der Inhalt der Datei "counter_ver.php" bzw. "counter_hor.php" direkt eingefügt werden.
Code Datei "counter_ver/hor.php "
<?php
### Blockversion ###
// Globale Einstellungen
$zeit = time();
$datum=date("d.m.y");
$uhrzeit=date("H:i:s");
// Wie lange dauert die Sperrzeit
$sperrzeit=600;
$neuladen=600;
// Dateiname, in welcher die Werte gespeichert werden
$filename="wsX5Obj/Obj162_0/zdatei.csv"; // kann auch anders lauten
$zeile = file($filename);
//***********************************************************************************************//
// Ausgabe Einstellungen (bei horizonal muss angepasst werden)
$Textausrichtung = left;      // Ausrichtung Text: left, center, right
$Blockausrichtung = 280;      // Abstand Block vom linken Seitenrand in px
$RahmenJN = 1;                // 0 = ohne Rahmen , 1 = mit Rahmen
$Rahmenstaerke = 1;           // Rahmenstärke in Pixel
$Rahmentyp = 'solid';         // Rahmenart: solid, dashed, double, dotted, outset, groove
$Rahmenfarbe= '#7C6031';      // Rahmenfarbe, # nicht vergessen
$Rahmenabstand= 15;           // Abstand Rahmen zum Text in Pixel
$Hintergrundfarbe='#EEF6E9';  // Hintergrundfarbe, # nicht vergessen, keine = none
$Schriftart = 'arial, helvetica, sans-serif';   // Schriftart
$Schriftgroesse = 12;         // Schriftgrösse in Pixel
$Schriftstaerke = normal;     // Schriftstärke: normal, bold, bolder
$Schriftfarbe ='#000000';     // Schriftfarbe, # nicht vergessen
$zaehlerbreite = 120;         // Zählerbreite:  0 = automatische Breite, > 0 = Breite in Pixel
$Zeilenhoehe = 130;           // Abstand der Textzeilen in Prozent
//*************************************************************************************************//
// Ab hier nichts mehr ändern
$ip = getenv(REMOTE_ADDR);
$eintrag=$zeit."#".$ip."\n";
$setzeDatum=0;
$zaehler=0;
foreach($zeile as $sperre)   {
$arraysp = explode("#",$sperre);
if($ip==rtrim($arraysp[1]) & $arraysp[0] > $zeit -$neuladen) {
$vorhanden=1;
}
}
foreach($zeile as $wert)  {
$array = explode("#",$wert);
if($array[0]=='datum'& rtrim($array[1])!=$datum) {
$setzeDatum=1;
}
if($vorhanden!=1)  {
if($array[0]=='heute') {
if ($setzeDatum==0) {
$heute=rtrim($array[1])+1;
}
else {
$heute=1;$gestern=rtrim($array[1]);
}
}
if($array[0]=='gestern'& $setzeDatum==0) {
$gestern=rtrim($array[1]);
}
if($array[0]=='gesamt') {
$gesamt=rtrim($array[1])+1;
}
}
else {
if($array[0]=='heute') {
if ($setzeDatum==0) {
$heute=rtrim($array[1]);
}
else {
$heute=1;$gestern=rtrim($array[1]);
}
}
if($array[0]=='gesamt') {
$gesamt=rtrim($array[1]);
}
if($array[0]=='gestern'& $setzeDatum==0) {
$gestern=rtrim($array[1]);
}
}
}
$fpwrite = fopen($filename , "w");
fwrite ($fpwrite, "datum"."#".$datum."\n"."heute"."#".$heute."\n"."gestern"."#".$gestern."\n"."gesamt"."#".$gesamt."\n".$eintrag, 750);
fclose($fpwrite);
$fpanhaengen = fopen($filename , "a");
foreach($zeile as $useronline)   {
$arrayuseronline = explode("#",$useronline);
if($arrayuseronline[0] > $zeit -$sperrzeit & $ip!=rtrim($arrayuseronline[1])) {
fwrite ($fpanhaengen,$useronline, 750);
}
}
fclose($fpanhaengen);
$zOnline = file($filename);
for($x=0;$x<count($zOnline);$x++) {
$zaehler=$zaehler+1;
}
foreach($zeile as $wert) {
$array = explode("#",$wert);
if($array[0]=='datum'& rtrim($array[1])!=$datum){
$setzeDatum=1;
}
if($vorhanden==1){
if($array[0]=='heute' & $setzeDatum==0){
$heute=rtrim($array[1]);
}
if($array[0]=='heute' & $setzeDatum==1){
$heute=1;$gestern=rtrim($array[1]);
}
if($array[0]=='gesamt'){
$gesamt=rtrim($array[1]);
}
if($array[0]=='gestern'& $setzeDatum==0){
$gestern=rtrim($array[1]);
}
if($array[0]=='rekord'){
$rekord=rtrim($array[1]);
}
}
else {
if($array[0]=='heute'& $setzeDatum==0){
$heute=rtrim($array[1])+1;
}
if($array[0]=='heute'& $setzeDatum==1){
$heute=1;$gestern=rtrim($array[1]);
}
if($array[0]=='gestern'& $setzeDatum==0){
$gestern=rtrim($array[1]);
}
if($array[0]=='rekord'){
$rekord=rtrim($array[1]);
}
if($array[0]=='gesamt'){
$gesamt=rtrim($array[1])+1;
}
if ($heute > $rekord){
$rekord = $heute;
}
}
}
$fpwrite = fopen($filename , "w");
fwrite ($fpwrite,"datum"."#".$datum."\n"."heute"."#".$heute."\n"."gestern"."#".$gestern."\n"."rekord"."#".$rekord."\n"."gesamt"."#".$gesamt."\n".$eintrag, 750);
fclose($fpwrite);
$rahmenwerte='';
if ($RahmenJN != 0) {
$rahmenwerte = ' border: '.$Rahmenstaerke. 'px '.$Rahmentyp. ' ' .$Rahmenfarbe.';';
}
$breitevorgabe='';
if ($zaehlerbreite != 0) {
$breitevorgabe= ' width:'.$zaehlerbreite.'px;';
}
echo '
<div align="'.$Textausrichtung.'" style="margin-left: '.$Blockausrichtung.'px; font-family: '.$Schriftart.'; font-size: '.$Schriftgroesse.'px; color: '.$Schriftfarbe.';  background-color: '.$Hintergrundfarbe. '; '.$rahmenwerte.$breitevorgabe.' height:auto; font-weight: '.$Schriftstaerke.'; padding: '.$Rahmenabstand.'px; line-height: '.$Zeilenhoehe.'%">
Heute: '.$heute. ' <br>
Gestern: '.$gestern. ' <br>
Gesamt: '. $gesamt .' <br>
User online: '.$zaehler=$zaehler-4 .' <br>
<hr>
Rekord: '.$rekord.' <br>
</div>';
?>

bei Zeilenausgabe:
Heute: '.$heute. ' &nbsp;|&nbsp;
Gestern: '.$gestern. ' &nbsp;|&nbsp;
Gesamt: '. $gesamt .' &nbsp;|&nbsp;
User online: '.$zaehler=$zaehler-4 .' &nbsp;|&nbsp;
Rekord: '.$rekord.'
Feedbacks zu ""

Pedro

11.02.2020, 08:46

+0 -0  

Alles gut und läuft. Kann man die zdai auch anders benennen. Vielen Dank, Pedro
Hi Pedro, wenn Du die zdatei meinst, es ist egal wie diese benannt wird.
Im Konfig-Bereich wird der Name definiert. Du solltest nur daran denken (ich vermute Du willst verschiedene Seiten zählen lassen), dass die Einbindung per include zwar auch möglich ist, aber ich empfehle den Code direkt im BODY einzufügen, da sonst jede Datei namentlich anders lauten muss.
Empfehlung per include dann:
counter_index.php und count_index.csv oder counter_gbuch.php und count_gbuch.csv
Gruß Mario

Edit 06.03.2020: Skript wurde komplett überarbeitet und Einstellungen ergänzt

Dahlhaus

05.03.2018, 12:48

+0 -0  

Wie kann ich die Hintergrund grösse angeben.
Wenn ich eine Farbe wähle, kommt ein viel zu grosser Hintergrund.
Danke

Habe den Farbwechsel des Hintergrundes nochmals getestet.
Dieses Phänomen tritt bei mir nicht auf, ggf. doch was vergessen (hinter z.B.= '#EEF6E9')
Ansonsten passt sich die Höhe des Zählers automatisch an und ist von Rahmenabstand, Schriftgröße und Zeilenhöhe abhängig.
Für die Breite gibt es einen Eintrag "zaehlerbreite"

Ralf Sbieschni

23.06.2017, 17:59

+0 -0  

Heute war nun der komplette Zähler wieder auf 1 zurück, hatte gestern auch eine überdurchschnittliche Aktivität laut Zähler auf meiner Seite.Habe den Hoster kontaktiert, ich weiß nicht mehr weiter.

Ralf Sbieschni

22.06.2017, 17:46

+0 -0  

Habe die Rechte laut Deiner Empfehlung eingestellt, seitdem keine komplette Rücksetzung mehr, aber der Rekord wird noch zurückgesetzt, d.h. zeitweise wird der immer neu berechnet, woran kann das liegen ?Die Gesamtsumme und die tägliche und vortägliche Summe bleiben bestehen .?

Ralf Sbieschni

03.06.2017, 20:07

+0 -0  

Hallo
Habe Deinen Besucherzähler wie beschrieben ,neu eingebaut, allerdings jetzt schon 2x ohne meinen Einfluß zurückgesetzt auf null, bzw. 1, jetzt verstehe ich gar nichts mehr.

Schau Dir mal die Dateirechte an.
Diese sollten auf 640 stehen und der übergeordnete Order auf 750.
Die Datei legt sich automatisch neu an, wenn diese gelöscht wird.
Das könnte bei Dir irgendwie der Fall sein, wie auch immer (per hack oder ähnliches).

Bitte Dein Feedback

Du wirst als User bei Deinem ersten Kommentar automatisch registriert und musst dies noch bestätigen.
Erstellen Dir ein Konto, damit Deine Kommentare dann ohne Bestätigung veröffentlicht werden.

Login | Registrierung


            CAPTCHA
            Vielen Dank für Dein Feedback.
            Logo Host Europe
            Button Spenden

            © 2009 - 2020




            
            Besucher Statistik
            » 2 Online
            » 73 Heute
            » 115 Gestern
            » 396 Woche
            » 2604 Monat
            » 49565 Jahr
            » 273771 Gesamt
            Record: 1144 (01.02.2020)
            Gesamt Downloads:
            Hosting by
            Zurück zum Seiteninhalt