[3.3] Eigenen Counter erstellen und einbinden.

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

[3.3] Eigenen Counter erstellen und einbinden.

Beitrag 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
Benutzeravatar
chris1278
Mitglied
Beiträge: 3526
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag 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
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag 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
Benutzeravatar
chris1278
Mitglied
Beiträge: 3526
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag 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.
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag 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
Benutzeravatar
IMC
Mitglied
Beiträge: 538
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag 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
Gruß, Thorsten
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag 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.
Verschoben von Support-Forum nach Coding & Technik am 21.11.2021 15:32 durch Crizzo

Benutzeravatar
IMC
Mitglied
Beiträge: 538
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag 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.
Gruß, Thorsten
MDuss
Mitglied
Beiträge: 267
Registriert: 06.02.2008 10:21

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag 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
69bruno
Mitglied
Beiträge: 444
Registriert: 05.06.2020 08:21

Re: [3.3] Eigenen Counter erstellen und einbinden.

Beitrag 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.
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 10 / PHP-Version: 8.1
Antworten

Zurück zu „Coding & Technik“