InternInhaltsverzeichnisGlossarBausteineLinklisteTutorialsKommentare

Thema: PHP - Counter für Seitenaufrufe Artikel anzeigen

Tim ✶✶✶✶✶ schrieb am Mittwoch, den 22 Januar 2020 #1
Der Counter funktioniert sehr gut. Danke dafür.
(Musste die Datei "counter.txt" allerdings manuell anlegen und eine 0 als Startwert eintragen)

Ist es möglich eine mehrzeilige Counter.txt zu erstellen, die wie folgt aufgebaut ist:

index.php = 11412 Aufrufe
Seite 2.php = 2124 Aufrufe
Seite 3.php = 535 Aufrufe ?

Ich würde gerne die Aufrufe jeder Unterseite meiner Website in einem Dokument speichern.
Mit dem hier vorgestellten Beispiel, müsste ich je PHP-Dokument eine eigen Textdatei anlegen...

MfG
Tim
Werner schrieb am Mittwoch, den 29 Januar 2020 #2
Ja, es Ist möglich eine mehrzeilige Counter.txt zu erstellen.
Habe aber keinen fertigen Code parat.
Peter schrieb am Freitag, den 31 Januar 2020 #3
Beispiel Text-Counter für Unterseiten:

Dabei wird in diesem Beispiel für jede Unterseite eine eigene Protokolldatei erstellt.

1) Ordner "counter":
Erstelle in dem Ordner "counter" eine PHP Datei mit dem Namen "counter.php".

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

<?php
// Dateipfad
$id basename($_SERVER['SCRIPT_NAME']);

// Pfad zum Protokoll
$protokoll __DIR__ '/protokoll-'.$id.'.txt';

// Check, ob Textdatei vorhanden. Wenn nicht, wird eine erstellt mit 0 erstellt
if (!file_exists($protokoll)) 
    {
    
$datei fopen($protokoll'w');
    
fwrite($datei0);
    
fclose($datei);
    }

// Protokoll auslesen und hochzählen
$zaehler intval(file_get_contents($protokoll));
$zaehler++;
file_put_contents($protokoll$zaehler);


2) Eine Ebene oberhalb deine Testdateien zB. testseite-1.php, testseite-1.php

Beispiel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

<?php 
require_once  __DIR__ '/counter/counter.php';
?>
<!DOCTYPE html>
<html lang="de-at">
<head>
<meta charset="UTF-8">
<title>Testseite 1</title>
</head>
<body>
<h1>Testseite 1</h2>
<p>
<?php
// Zählerstand auslesen
echo $zaehler;
?>
</p>
</body>
</html>



Bei Verwendung anderer Ordnernamen bzw Dateinamen müssten die Pfade natürlich angepasst werden.

Dieses Script kann nach Belieben ausgebaut werden, zB eine Reloadsperre mit SESSION.
Thiemo Melhorn schrieb am Mittwoch, den 4 November 2020 #4
Hallo Herr Werner Zenk,

obwohl ich die Textdatei "counter.txt" angelegt und hochgeladen habe, wird bei mir dieser Fehler "Parse error: syntax error, unexpected '"counter.txt"' (T_CONSTANT_ENCAPSED_STRING) in /users/melhorn/www/counter.php on line 3" angezeigt. Aber nur warum, weiß ich nicht.

Mit freundlichen Grüßen von
Thiemo Melhorn!
Werner schrieb am Mittwoch, den 4 November 2020 #5
Hallo Thiemo,
ich kann dir nur sagen was diese Fehlermeldung bedeutet:
Du hast da irgendwo im PHP-Quelltext ein Anführungszeichen " überschrieben deshalb meckert der PHP-Interpreter.

Welchen Editor verwendest du, normalerweise sieht man das sofort wenn da ein Anführungszeichen fehlt.
Benutze notepad++ - notepad-plus-plus.org/
Hessi ✶✶✶✶✶ schrieb am Mittwoch, den 23 Juni 2021 #6
So funktionierte der Zähler bei mir nicht. Die Datei wurde zwar verändert, aber die "0" blieb.
Ich habe nun schlicht das ausführliche

$Zaehler=($Zaehler+1);

verwendet und alles ist gut.

Danke für das Script!
Werner schrieb am Donnerstag, den 24 Juni 2021 #7
php.net/manual/de/langu[…]rement.php

Ich sehe gerade das Script ist schon alt, so macht man das heutzutage nicht mehr. Ich werde das aktualisieren.
Hessi ✶✶✶✶✶ schrieb am Donnerstag, den 24 Juni 2021 #8
Hi Werner,

super, danke. Solche Seiten wie Deine sind wichtig im Netz.
Vielleicht solltest Du auch den Noobs gleich noch die Auslese/Anzeigemöglichkeit mit auf den Weg geben?

<?php
$Zaehler_gelesen = file_get_contents($Dateiname);
echo $Zaehler_gelesen;
?>

Könnte man ja gleich noch mit in das Script integrieren, dann eben nur:

echo $Zaehler;

Aber ich bin nun echt kein PHP-Crack.

Gruß
Michael
Werner schrieb am Donnerstag, den 24 Juni 2021 #9
Vielen Dank für den Tipp mit der Anzeigemöglichkeit 👍
Ich habe das Skript (oben) aktualisiert.