BOM in einer von WordPress automatisch generierten PHP-Seite

Lesezeit: 3 Minuten

Ich verwalte zwei verschiedene Blogs. Sie sind beide WordPress 2.8.6 (sie haben also genau den gleichen Quellcode, abgesehen von Plugins), aber sie befinden sich auf zwei verschiedenen Hosting-Plattformen (hostmonster.com und aruba.it). Um mein Problem zu erklären, habe ich mit SmartSniff eine Sitzung mit jeder der Seiten ausgegeben.

Hier ist der Dump von hostmonster:

GET /blog/paolo/ HTTP/1.1
Host: www.e-venturi.com
Accept-Encoding: identity
Accept-Language: en-us
Accept: text/html, text/plain, text/xml, image/gif, image/x-xbitmap, image/x-icon,image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0;)


HTTP/1.1 200 OK
Date: Sat, 28 Nov 2009 23:47:38 GMT
Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.11
X-Pingback: http://www.e-venturi.com/blog/paolo/xmlrpc.php
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

a6
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

und jetzt aus aruba:

GET /blog/ HTTP/1.1
Host: www.cubanite.net
Accept-Encoding: identity
Accept-Language: en-us
Accept: text/html, text/plain, text/xml, image/gif, image/x-xbitmap, image/x-icon,image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0;)


HTTP/1.1 200 OK
Date: Sat, 28 Nov 2009 23:49:19 GMT
Server: Apache/2.2
X-Pingback: http://www.cubanite.net/blog/xmlrpc.php
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

100b
...<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

(Hinweis: a6 und 100b sind die von SmartSniff gemeldete Paketgröße)

Ok, der große Unterschied sind die drei Punkte vor dem <!DOCTYPE auf aruba. Sie sind die UTF-8-BOM (0xef 0xbb 0xbf).

Da es sich um dieselbe PHP-Quelle auf beiden Servern handelt, warum erscheint sie nur auf einem Server?

Der Inhalt wird so generiert, dass der Autor des Beitrags nicht absichtlich eine Stückliste einfügen kann, und ich habe überprüft, dass die Vorlage auch frei von Stücklisten ist. Natürlich gibt es auf den Servern verschiedene PHP- und Apache-Versionen … was kann ich überprüfen oder einstellen, um das Problem zu diagnostizieren und zu beheben? Übrigens will ich die Stückliste nicht.

Vielen Dank im Voraus.

  • Sind Sie sicher, dass Sie alle Dateien auf BOM überprüft haben? Also nicht nur die gewünschte, sondern alle enthaltenen.

    – chelmertz

    29. November 2009 um 3:40 Uhr

  • chelmertz, du hast recht 🙁 Ich habe eine kleine Datei vergessen und sie hatte eine BOM … sie war in einem Plugin. Ich musste den gesamten Blog per FTP herunterladen und jede Datei mit einem kleinen Programm überprüfen, mit dem ich gearbeitet habe die Fliege (ich kann das nicht auf dem Server in Aruba) und ich habe sie gefunden. Danke, dass ich das alles noch einmal überprüft habe 😉

    – Paolo63

    29. November 2009 um 17:55 Uhr

Die Stückliste befindet sich vor dem Öffnen in einer der PHP-Quelldateien <?php. Gelegentlich kann dies auftauchen, weil Sie den Quellcode in einem schlecht geschriebenen Texteditor angezeigt haben, einen FTP-Client mit einem Fehler verwendet haben, ein Entpack-Tool verwendet haben, das automatisch die Stückliste eingeworfen hat, den Quellcode von einem schattigen Spiegel erhalten hat usw. usw.

Meine Lösung besteht darin, die primären WP-Dateien zu öffnen (index.php, wp-*.php, etc.) in Notepad++ und stellen Sie das Format von Windows/Mac auf Unix um und schalten Sie das BOM aus. Dadurch werden die Dateien von allen Quellproblemen bereinigt.

Der Grund, warum Sie es auf zwei verschiedenen Servern anders sehen, könnte sein, dass die Server zwei verschiedene Serveranwendungen oder zwei verschiedene Betriebssysteme ausführen (oder sogar zwei verschiedene Konfigurationen haben). Die Plattformunterschiede würden dazu führen, dass Ihre Server ihre eigene eindeutige Interpretation der BOM senden.

Hoffe das hilft!

1004740cookie-checkBOM in einer von WordPress automatisch generierten PHP-Seite

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy