Seite 1 von 5

[3.3] Eigenen Counter erstellen und einbinden.

Verfasst: 21.11.2021 12:32
von MDuss
Hi Leute.

Ich habe hier ein kleines Problem. Ich wollte mir gerne einen eigenen Besucherzähler erstellen und in der Übersicht des Forums anzeigen lassen.

Da ich selber leider nicht so die Kenntnisse habe, habe ich mich im Web nach Anleitungen umgesehen, und bin dann auf dies hier gestoßen:

https://www.ionos.de/digitalguide/websi ... tionierts/

Ich habe mir dann eine entsprechende Tabelle angelegt mit den 4 Feldern.

Dann wollte ich mir das php Script erstellen.
<?php
function besucher($record) {
$db_host = "localhost";
$db_username = "nutzername";
$db_password = "passwort";
$db_name = "datenbank-name";
$db_table = "tabellen-name";
$counter_page = "access_page";
$counter_field = "access_counter";

$db = mysqli_connect ($db_host, $db_username, $db_password, $db_name) or die("Host oder Datenbank nicht erreichbar");

$sql_call = "INSERT INTO ".$db_table." (".$counter_page.", ".$counter_field.") VALUES ('".$record."', 1) ON DUPLICATE KEY UPDATE ".$counter_field." = ".$counter_field." + 1";
mysqli_query($db, $sql_call) or die("Fehler beim Einfügen");

$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or die("SQL-Anfrage fehlgeschlagen");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];

mysqli_close($db);
return $x;
}
?>
Die Datei habe ich einfach zaehler.php genannt und auf den FTP hochgeladen ins Verzeichnis /styles/prosilver/template/
Für die variablen nutzername usw. habe ich entsprechend die Daten der Tabelle bzw. Datenbank eingetragen

In der Datei index_body.html habe ich dann ganz oben folgendes eingefügt:
<?php
include "zaehler.php";
$page_name = "Übersicht";
$anzahl_zugriffe = besucher($page_name);
?>
Nun wollte ich das ganze mal testen, aber die Datenbank bleibt ohne Einträge. Kann mir hier jemand helfen und sagen, was ich da falsch mache?

Ich möchte eigentlich nur einen reinen Besucherzähler ohne weitere Sachen.

Ich habe mich auch mal mit der Reloadsperre beschäftigt und dabei das hier gefunden:

https://www.php-einfach.de/experte/php- ... ad-sperre/

Wenn der Test oben funktioniert hätte, dann hätte ich den folgenden Teil in der Index_body.html wie folgt geändert:

Anstatt
<?php
include "webcounter.php";
$page_name = "Übersicht";
$anzahl_zugriffe = besucher($page_name);
?>
hätte ich jetzt folgendes verwendet:
<?php
session_set_cookie_params(120);
session_start();

if(!isset($_SESSION['counter_ip']))
{
include "zaehler.php";
$page_name = "Übersicht";
$anzahl_zugriffe = besucher($page_name);
}
?>
2 Minuten bei der Reloadsperre einfach mal zum testen, später hätte ich dann einen höheren Wert eingesetzt.

Aber wie gesagt, bei mir scheitert es ja schon, dass nichts in die Datenbank geschrieben wird.


Ausgegeben hätte ich dann den Besucherzähler ebenfalls auf der Index_body.html mit dem folgenden Befehl:
<?php
echo "Sie sind bereits der ", $anzahl_zugriffe, ". Besucher auf dieser Seite!";
?>
</p>
An entsprechender Stelle.


Kann mir jemand helfen?

Oder gibt es hier eine entsprechende Extension, die einfach mit Relaodsperre die Besucher zählen kann, und welche die Ausgabe dann auf der Indexseite ausgeben kann, also auf der Forumsstartseite. Mir würde ein einfacher Zähler reichen, so Sachen wie Clientbrowser, oder IP, oder Herkunftsland oder Monitorauflösung interessieren mich grundsätzlich gar nicht. Nur ein einfacher Besucherzähler und fertig.

MfG
MDuss

Re: [3.3] Eigenen Counter erstellen und einbinden.

Verfasst: 21.11.2021 13:28
von chris1278
Warum so umständlich?

Wenn es nur um Anzeige geht wieviel online waren steht es in der Statistik. Ansonsten schau dir mal die diese Extension an:

viewtopic.php?t=241976

Re: [3.3] Eigenen Counter erstellen und einbinden.

Verfasst: 21.11.2021 13:51
von MDuss
Hi chris1278.

Von welchen Statistiken genau sprichst Du ?

Im ACP gibt es auf dem Register Allgemein keine Angabe über den Gesamtzähler bzgl. der Besuche. Im footer der Hauptseite gibt es auch keinen Besucherzähler.

Ich will ja auf der Hauptseite halt nur Ausgeben können, wie viele Besucher das Board insgesamt schon hatte.

Ich werde mir die Extension gleich mal ansehen.

MfG
MDuss

Re: [3.3] Eigenen Counter erstellen und einbinden.

Verfasst: 21.11.2021 13:54
von chris1278
Dann lese dir mal bei der wer ist online liste den ersten teil durch da steht dann in etwa sowas drin:

Der Besucherrekord liegt bei 6 Besuchern, die am Mi 13. Okt 2021, 19:25 gleichzeitig online waren.

Re: [3.3] Eigenen Counter erstellen und einbinden.

Verfasst: 21.11.2021 14:12
von MDuss
Hi chris1278.

Der Teil gibt mir ja nur den Besucherrekord aus, also zu welchem Zeitpunkt die meisten Besucher da waren, aber nicht wie viele Besucher es insgesamt gegeben hat.

MfG
MDuss

Re: [3.3] Eigenen Counter erstellen und einbinden.

Verfasst: 21.11.2021 15:02
von IMC
Unabhängig davon, dass das "Support-Forum" die falsche Stelle für deine Frage ist, bin ich mir sicher das du den falschen Dateipfad bei deinem include "zaehler.php"; angegeben hast.

Teste doch erst alles in einer separaten Datei bevor du es in phpBB einbindest. Dann bist Du schon mal sicher das es richtig arbeitet.

Auch solltest du Suchmaschinen usw. ausfiltern. Ich hatte das mal bei meiner Webseite gemacht. Dann waren es statt 250 Aufrufe nur noch 40 am Tag.
Das habe ich hiermit realisiert.
http://browscap.org/
https://www.php.net/manual/de/function.get-browser.php

Re: [3.3] Eigenen Counter erstellen und einbinden.

Verfasst: 21.11.2021 15:17
von MDuss
Hi IMC.

Wie meinst du dass mit "Teste doch erst alles in einer separaten Datei bevor du es in phpBB einbindest".

Meinst du einfach die Datei zaehler.php direkt über den Browser aufrufen?

MfG
MDuss

[Edit:] Eventuell kann ja ein Moderator diesen Thread dann in den richtigen Bereich verschieben.

Re: [3.3] Eigenen Counter erstellen und einbinden.

Verfasst: 21.11.2021 16:30
von IMC
MDuss hat geschrieben: 21.11.2021 15:17 Meinst du einfach die Datei zaehler.php direkt über den Browser aufrufen?
Ja!
Vereinfacht auch die Fehlersuche im Code.

Re: [3.3] Eigenen Counter erstellen und einbinden.

Verfasst: 21.11.2021 17:00
von MDuss
Hi IMC.

Ich habe es versucht, und die Datei zaehler.php direkt über den Browser aufgerufen, aber es wird nichts in die Datenbank eingetragen.

Aktuell sieht der Inhalt der Datei zaehler.php wie folgt aus:

Code: Alles auswählen

<?php
function besucher($record) {
$db_host = "localhost";
$db_username = "d03818c5";
$db_password = "1111111111";
$db_name = "d03818c5";
$db_table = "Counter";
$counter_page = "access_page";
$counter_field = "access_counter";

$db = mysqli_connect ($db_host, $db_username, $db_password, $db_name) or die("Host oder Datenbank nicht erreichbar");

$sql_call = "INSERT INTO ".$db_table." (".$counter_page.", ".$counter_field.") VALUES ('".$record."', 1) ON DUPLICATE KEY UPDATE ".$counter_field." = ".$counter_field." + 1";
mysqli_query($db, $sql_call) or die("Fehler beim Einfügen");

$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or die("SQL-Anfrage fehlgeschlagen");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];

mysqli_close($db);
return $x;
}
?>
MfG
MDuss

Re: [3.3] Eigenen Counter erstellen und einbinden.

Verfasst: 21.11.2021 17:28
von 69bruno
Irgendwo muss die Funktion ja auch aufgerufen werden. Du hast sie bisher nur definiert.

Lass doch mal "function ...... {"

und das beendende "}" weg und rufe die Seite auf.

Oder setze mal ein "Echo" ein, ob du überhaupt in den code kommst.