WebsiteBaker Logo
  • *
  • Templates
  • Help
  • Add-ons
  • Download
  • Home
*
Welcome, Guest. Please login or register.

Login with username, password and session length
 

News


WebsiteBaker 2.13.9 R24 is now available!


R.I.P Dietmar (luisehahne) and thank you for all your valuable work for WB
https://forum.websitebaker.org/index.php/topic,32355.0.html


* Support WebsiteBaker

Your donations will help to:

  • Pay for our dedicated server
  • Pay for domain registration
  • and much more!

You can donate by clicking on the button below.


  • Home
  • Help
  • Search
  • Login
  • Register

  • WebsiteBaker Community Forum »
  • WebsiteBaker Support (2.13.x) »
  • General Help & Support »
  • Hilfe & Support (deutsch) »
  • Fehlermeldung wbstats/class.count.php on line 303
  • Print
Pages: [1]   Go Down

Author Topic: Fehlermeldung wbstats/class.count.php on line 303  (Read 1740 times)

Offline gba

  • Posts: 67
Fehlermeldung wbstats/class.count.php on line 303
« on: August 30, 2025, 09:07:47 PM »
Ich bekomme seit heute folgende Fehlermeldung statt der Homepage:

There was an uncatched exception
database::escapeString(): Argument #1 ($unescaped_string) must be of type string, null given, called in /pages/68/d0/d0013785/home/htdocs/wb/modules/wbstats/class.count.php on line 303
in line (259) of (/framework/class.database.php):

Auslöser scheint das Statistik-Modul zu sein.

Anmeldung im Backend ist möglich. Ich habe die Seite jetzt erst mal in den Wartungszustand versetzt.

Ich habe momentan die Version 2.13.6 r237 in Benutzung.
Die Visitor Statistik ist Version 0.2.5.5, im Backend läuft die richtig.

Was ist da los, bzw. wie kann ich das reparieren?
« Last Edit: September 01, 2025, 08:50:55 AM by dbs »
Logged

Offline gba

  • Posts: 67
Re: Fehlermeldung seit heute
« Reply #1 on: August 30, 2025, 09:20:37 PM »
Ich glaube ich hatte so eine Meldung vor einigen Jahren schon einmal.
Logged

Offline dbs

  • Betatester
  • **
  • Posts: 8927
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Fehlermeldung seit heute
« Reply #2 on: August 30, 2025, 09:28:44 PM »
Hi, du kannst mal die angehängte Version probieren. Darin hatte ich in class.count.php zeile 303 etwas gefixt.
Ist aber schon ein Jahr her. Ob es dein Problem löst weiß ich nicht.

siehe unten
« Last Edit: September 01, 2025, 12:01:07 PM by dbs »
Logged
https://onkel-franky.de

Offline sternchen8875

  • Global Moderator
  • *****
  • Posts: 629
Re: Fehlermeldung seit heute
« Reply #3 on: August 31, 2025, 10:23:10 AM »
Ursache ist ein nicht angekommender Wert, in diesem Fall aus den Besucher-Informationen. Die werden ja nicht in jedem Fall vollständig übertragen und müssen das auch nicht.

Da es wahrscheinlich ist, das solche Fehler öfter vorkommen, dröseln wir es mal auf

Die Fehlermeldung:
Quote
database::escapeString(): Argument #1 ($unescaped_string) must be of type string, null given, called in /pages/68/d0/d0013785/home/htdocs/wb/modules/wbstats/class.count.php on line 303
in line (259) of (/framework/class.database.php):

Mit einfachen Worten übersetzt: Erwartet wird in diesem Fall ein String, also eine Zeichenkette mit Text, der Wert wurde aber garnicht übergeben (null given)
Danach folgen Datei und Zeilennummer

Die Originalzeile dort:
Code: [Select]
$city = $database->escapeString($this->getCountryCode());
Der Auftrag dort: Überprüfe den erwarteten String ($this->getCountryCode()) und escape ihn. Escapen wäre ein üblicher Vorgang zur Maskierung, z.b. von Hochkommas im Text
Da der Text aber garnicht da ist, gibt es nichts zu escapen, daher die Fehlermeldung.

Eine übliche Vorgehensweise wäre nun diese Änderung in Z 303 der genannten Datei
Code: [Select]
$city = $database->escapeString($this->getCountryCode() ?? '');
nennt sich: Null Coalescing Operator
Geprüft wird der Inhalt des Strings. Ist er nicht Null, wird er so verwendet. Ist er null, wird der Wert innerhalb der beiden Hochkommas  hinter den Fragezeichen verwendet, in diesem Fall also ein leerer String, so, wie es das Script erfordert. NULL wäre nichts, so ist es aber etwas Leeres. Im exakten Beispiel der Fehlermeldung würde es heißen: "der CountryCode wurde nicht übermittelt, schreibt rein: er ist leer / keine Angabe

Nun sind solche Dinge seit PHP 8 immer strenger und werden es auch von jeder PHP-Version zur nächsten, auch mit PHP 8.5 ab Dezember 2025
Es liegt also nahe, das diese Fehler vermehrt auftreten werden
Wir haben uns daher entschlossen, auch in Rücksprache mit Ruud, dem Entwickler von wbstats, das Problem "eine Etage höher" anzugehen, in der class.database.php, die diesen Vorgang initiiert. Dort werden jetzt alle NULL-Einträge abgefangen

Heißt in der Summe: für deine Problematik ergeben sich 3 Möglichkeiten zur Korrektur

1.: ein Update der WebsiteBaker-Version. Das wäre in 2min erledigt. Da du schon eine recht neue Version benutzt, rechne ich nicht mit großen Problemen
2.: die entsprechende Zeile wie oben angegeben reparieren, allerdings kann es beim nächsten fehlenden Wert erneut auftreten
3.: für die kurzzeitige Abhilfe wäre es praktischer gewesen, nur die Einbindung von wbstats zu unterbinden, das wäre eine Zeile wie diese in der index.php deines Frontend-Templates, die man entsprechend auskommentieren müßte bis zur Reparatur
Code: [Select]
if (is_readable(WB_PATH.'/modules/wbstats/count.php')){include (WB_PATH.'/modules/wbstats/count.php');}Erscheint mir besser zu sein als der Wartungsmodus, ich verstehe aber auch, wenn sich ungeübte User da nicht ran trauen


Logged

Offline gba

  • Posts: 67
Re: Fehlermeldung seit heute
« Reply #4 on: August 31, 2025, 10:50:46 AM »
@ sternchen8875
So steht es in meiner index.php des Templates. Wieso das seit gestern nicht mehr ging weiß ich nicht.

@ dbs
Habe die bisherige Version 2.5.5 deinstalliert und die 2.5.6 installiert. Jetzt läuft es wieder.

Ich habe leider nur geringe php-Kenntnisse, deshalb kann ich nicht viel beitragen.

Vielen Dank für eure Hilfe  (Y)
Logged

Offline sternchen8875

  • Global Moderator
  • *****
  • Posts: 629
Re: Fehlermeldung seit heute
« Reply #5 on: August 31, 2025, 12:24:04 PM »
Na schrieb ich doch:
Nehmen wir an, ich besuche deine Webseite. Üblicherweise übermittelt mein Browser diverse Daten wie IP-Adresse, CountryCode usw. Das kann ich aber auch unterbinden. Surfe ich über VPN, wird mein CountryCode verschleiert, Ähnlich bei Tor-Browsern. Aber es muß nicht mal die Absicht dahinterstecken, anonym zu bleiben. Die Übermittlung solcher Daten ist optional, keine Pflicht. Pflicht wäre meine IP-Adresse. Sende ich keinen CountryCode, ist es übliche Praxis, diesen CountryCode aus der IP des Besuchers zu ziehen. Ob das Teil von WbStats ist, mußt du Ruud fragen.

Ist für das System kein solcher CountryCode vorhanden, wirft es genau diesen Fehler. Das Gleiche gilt dann auch für andere Werte wie Browser, Sprache usw.

Was nun genau Ursache ist, das in deinem Fall Fehler geworfen wurde, läßt sich nicht mehr sagen, da der Eintrag einen neuen Besuchers auf Grund des Fehlers nicht statt gefunden hat. Klar ist, es fehlte dieser Ländercode
Logged

Offline dbs

  • Betatester
  • **
  • Posts: 8927
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Fehlermeldung seit heute
« Reply #6 on: September 01, 2025, 08:50:21 AM »
Für alle, denen im Reiter Logbuch plötzlich viele Orte nicht mehr angezeigt werden, ist die angehängte Version wbstats 2.5.7 zum Testen.
Es wir nicht mehr geoplugin.net verwendet, sondern ip-api.com, welche weiter ohne API Key arbeitet.

siehe unten
« Last Edit: September 01, 2025, 12:01:38 PM by dbs »
Logged
https://onkel-franky.de

Offline sternchen8875

  • Global Moderator
  • *****
  • Posts: 629
Re: Fehlermeldung wbstats/class.count.php on line 303
« Reply #7 on: September 01, 2025, 11:54:30 AM »
Thanks to Ruud for the fast reaction!!   (Y)

https://dev4me.com/modules-snippets/opensource/wbstats/
Logged

  • Print
Pages: [1]   Go Up
  • WebsiteBaker Community Forum »
  • WebsiteBaker Support (2.13.x) »
  • General Help & Support »
  • Hilfe & Support (deutsch) »
  • Fehlermeldung wbstats/class.count.php on line 303
 

  • SMF 2.0.19 | SMF © 2017, Simple Machines
  • XHTML
  • RSS
  • WAP2