Also schön, nochmal in ganz langsam (ist nicht ganz so böse gemeint wie es sich vielleicht anhört

):
In deinem Code verwendest du die HTTP_HOST-Variable um den Prefix für die Board-Tabelle zu generieren. Das funktioniert aber nur unter einer Bedingung:
Jedes Board hat exakt eine Domain, also auch keine Subdomains oder ähnl. Ich habe dazu eben eine kleine PHP-Datei gebastelt auf einer Domain die mit und ohne www. erreichbar ist:
http://www.info.cat.cat-proof.de/test.php
http://info.cat.cat-proof.de/test.php
Wäre dort jetzt ein Board installiert das seinen Prefix nach deinem Verfahren auswählt, würde es nur mit einer der 2 Domains funktionieren.
Die Lösung aus diesem Problem ist es, nicht die HTTP_HOST-Variable zu nutzen, sondern die Variable SERVER_NAME, oder über eine gesonderte SQL-Abfrage zu gehen.
Und jetzt das nochmal in Haarklein:
Du kennst sicher VirtualHosts im Apache-Webserver, vermutlich nutzt du sie auch selber um deinen Code von Seite 1 zu testen. Du hast dabei immer 2 Zeilen um die Domains anzugeben die für diesen VirtualHost gelten: ServerName und ServerAlias. Vorrausgesetzt das UseCanonicalName On ist, wird die Variable SERVER_NAME immer die Domain aus ServerName beinhalten, ganz egal unter welcher Domain wir diesen VirtualHost/diese Webseite aufrufen => Es ist also besser diese Variable zu verwenden, denn so ist das ganze Multidomain Save.
Wenn für die verschiedenen Boards nun keine seperaten VirtualHosts benutzt werden sollen, UseCanonicalName Off ist oder schlichtweg kein Apache-Webserver benutzt wird, dann bietet sich Methode 2 an:
Wir nutzen zwar die HTTP_HOST-Variable, machen daraus aber nicht direkt den Prefix, sondern Fragen erstmal eine Datenbank-Tabelle die wie folgt aussehen könnte:
domain | prefix
----------------------
info.cat.cat-proof.de | info_cat_cat_proof_de
www.info.cat.cat-proof.de | info_cat_cat_proof_de
Alles klar?