Schönheitsfehler im wBB 2.3.x

Als ich mich kürzlich dem Thema: wBB 2.3.x und PHP 5.4 gewidmet habe, habe ich spaßeshalber einmal in der PHP Konfiguration die Anzeige aller Meldungen (Notizen, Warnungen usw.) aktiviert. Wer dies auch tun möchte muss lediglich in seiner PHP-Konfigurationsdatei die Direktive: error_reporting auf E_ALL setzen.

Weitere Erkenntnisse

Neben den bisher bekannten Problemen die die PHP Version 5.3 mit sich bringt bin ich ebenfalls auf zwei Meldungen gestoßen, die es wohl schon sehr viel länger gibt und die, das sei ausdrücklich erwähnt, zu keinerlei Fehlern beim Betrieb des Forums führen. Gemeint sind die beiden Meldungen:

und [cc lang=’php‘ ]Strict Standards: Non-static method headers::send() should not be called statically, assuming $this from incompatible context in PFADZUMFORUMacplibclass_tpl_file.php on line 72

Widmen wir uns also der ersten Meldung einmal. Diese wird einige Male angezeigt und bezieht sich jeweils auf die Funktionen:

  • wbb_strlen()
  • wbb_strtolower()
  • wbb_strtoupper()
  • wbb_substr()

in der Datei: ./acp/lib/functions.php.

Der Grund für die Meldung ist der Aufruf der Funktionen vor der eigentlichen Deklaration der Konstante: USE_MBSTRING. Das führt zu keinen Problemen, da im normalen Skriptablauf die Konstante zumindest zu beginn als nicht existent betrachtet und damit als false bewertet wird. Im späteren Verlauf wird die Konstante unter Berücksichtigung des jeweils zur Sprache gehörenden Zeichensatzes.

Um die Meldung zu Entfernen sind die folgenden Änderungen notwendig:
Suche nach:

und ersetze es durch Folgendes:

 
Damit wäre die erste Meldung abgearbeitet. Kommen wir zur zweiten, die sich mit dem Aufruf einer nicht statischen Methode beschäftigt. Die Ursache für diese Meldung ist recht einfach und weißt auf eine kleine Unsauberkeit bei der Entwicklung der Software in. Die Methode send() wurde innerhalb der Klasse headers in der Datei: ./acp/lib/class_tpl_file.php. Um die Meldung zu entfernen reicht es die besagte Methode korrekt nach der Instanziierung korrekt aufzurufen.
Dazu sucht man in der Datei: ./acp/lib/class_tpl_file.php nach:

und ersetzt es durch:

Damit wäre unsere geliebte Forensoftware wieder etwas sauberer. 😉

Autor: Michael Schüler

Ich befasse mich derzeit verstärkt mit dem Thema Fotografie und bin ebenso als Entwickler im Web unterwegs. Dabei interessieren mich verstärkt Themen wie die Modifikation und Erweiterung von Forensoftware sowie Blogsoftware, wie bspweise WordPress.

3 Kommentare

  1. Hallo Micha,

    erst einmal Danke das du dich damit so auseinander setzt.

    Ich habe schon auf Php 5.3 mein Wbb umgestellt und bin froh das du Dir die zeit genommen hast um das zu beschreiben was gemacht werden muß Danke!!

    Die hinweise zur Veränderungen bei Php 5.4 finde ich klasse und kann schon mal sagen Danke.

    Lg

    • Hallo André.
      Vielen Dank für deine Anmerkungen. Ich habe was die hier und auch im neuen Artikel (http://speedyservice.de/2012/02/schonheitsfehler-im-wbb-2-3-x-teil-2/) erwähnten Hinweise anbelangt diese erst so recht aufgenommen, als ich die Kompatibilität mit PHP 5.4 getestet habe.. Wirklich dramatisch sind sie nicht, dennoch erklären sie zumindest teilweise früheren Probleme einiger Nutzer. Vor allem beim Thema: Notice: Use of undefined constant USE_MBSTRING – assumed ‚USE_MBSTRING‘ 😉

      Ich hoffe doch meine Erläuterungen sind soweit verständlich.

      Beste Grüße

      Micha

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.