Zum Inhalt springen

WP PXS-Mail verursacht Cache-Probleme

Bis eben hatte ich für mein Kontaktformular das Plugin WP PXS-Mail in seiner neuesten Version (3.1.4de) im Einsatz. Ich musste dieses Plugin wegen Cache-Problemen deaktivieren. Wie ich bereits in meinem anderen Beitrag zur Problematik berichtet hatte, konnte mein Blog in verschiedenen Browsern nicht in seiner aktuellen Form dargestellt werden. Auch beim Absenden von Kommentaren kam es zu Schwierigkeiten, weil diese nicht bzw. erst Stunden später zu sehen waren.

Versuche über entsprechende Befehle in der header.php das Problem in Griff zu bekommen scheiterten alle. Auch der zuletzt eingefügte Befehl

header(„Expires: Mon, 13 Jul 1997 02:00:00 GMT“);
header(„Last-Modified: “ . gmdate(„D, d M Y H:i:s“) .“ GMT“);
header(„Cache-Control: no-cache“);
header(„Pragma: no-cache“);

gab nur zum Schein eine Verbesserung. Alle statischen Seiten des Blog gaben einen PHP-Fehler aus, wenn sie aufgerufen wurden. Ich habe den Code daraufhin wieder entfernen müssen. Auch die Lösungsansätze, die ich via Blogwartung erhalten hatte (vielen Dank trotzdem an Siegfried für seine Bemühungen!), konnten diese nervende Erscheinung nicht endgültig beseitigen.

Erst die Deaktivierung von PXS-Mail und ein Blick in die pxsmail.php föderte die Lösung an den Tag. Zeile 20 der pxsmail.php setzt den Wert @session_cache_limiter(‚private‘);, der für die Probleme bei der aktuellen Darstellung des Blog verantwortlich war. Der String private bedeutet

…. im private-Modus könnte ein zum Client gesendeter Expire-Header manche Browser, inklusive Mozilla, verwirren. Sie können dieses Problem durch Verwendung des private_no_expire-Modus vermeiden. In diesem Modus wird nie ein Expire-Header zum Client gesendet. (Quelle)

Ersetzt man diesen standardmäßig vorgegebenen String wie beschrieben mit private_no_expire funktioniert PXS-Mail trotzdem, die genannten Schwierigkeiten sind mit der Aktualisierung aber anscheinend behoben.

Der negative Beigeschmack an den Schwierigkeiten ist, dass der Blogbetreiber dies nicht mitbekommt, wenn sein Browser entsprechend eingestellt ist (Browser-Cache leeren wenn Sitzung beendet etc.). Da aber viele Internetnutzer ihren Cache nicht täglich leeren, manche eventuell sogar nur höchst selten, erhalten diese Besucher nie die aktuellen Beiträge angezeigt und sind der Meinung, man habe eben nichts veröffentlicht. Ich erfuhr auch erst durch Hinweise aus meiner Leserschaft und somit durch Zufall von dem Problem!

Diese Vermutung kann im ungünstigsten Falle dazu führen dass einige Leser fern bleiben, weil sich aus ihrer Sicht nichts oder nur sehr wenig im Blog tut. Wer also PXS-Mail im Einsatz hat, sollte dies im eigenen Interesse nicht ganz unbeobachtet lassen.

[update]Man soll den Tag nicht vor dem Abend loben. Beim Internet-Explorer bleibt das Problem trotzdem bestehen. PXS-Mail wurde deswegen komplett deaktiviert! Der beschriebene Fehler ist offensichtlich nicht abhängig vom verwendeten Theme. Ein Test von PXS-Mail in Verbindung mit dem Default-Theme von WordPress zeigte das gleiche Verhalten!

[update]Zusammen mit Frank Bültge konnte das Problem gelöst werden, so dass nach der folgenden Änderung sowohl Plugin als auch Browser-Cache wieder vernünftig arbeiten. Ab der WP-Version 2.5 sind in der Datei pxsmail.php die Zeilen 20 und 21 ersatzlos zu löschen [ @session_cache_limiter(‚private‘); @session_cache_expire(0); ]. Ein entsprechendes Update der php-Datei wird es sicherlich schnellstens bei Frank geben.

Schlagwörter:

23 Gedanken zu „WP PXS-Mail verursacht Cache-Probleme“

  1. Ich hatte schon den Verdacht, dass das „private“ im Expires Header Probleme macht. Mir war dieser Cache-Modus bislang unbekannt. Und eben dieses „private“ kam ja genau so im http response header vor. Dass das allerdings derartig verwirrend ist…

    Abschalten würde ich das Cacheing nicht. Siehe dazu Artikel bei Yahoo https://developer.yahoo.com/performance/rules.html

    Das Expires Feld im response header sollte auf einen vernünftigen Wert gesetzt werden. Mit der .htaccess kannst Du das verzeichnisweise machen. So kannst Du z.B. Bildern und Stylesheets eine sehr lange Gültigkeit verpassen, der html- und der rss-Datei aber eine angemessen kurze. Das kann die Performance signifikant steigern.

  2. @Siegfried:
    Wichtig ist, dass Du mich mit auf den richtigen Weg zur Ausbesserung gebracht hast (Danke nochmal). Bisher lief mein WordPress immer ohne Caching. Und wie ich meine soweit ganz gut. Solange es aus Performancegründen nicht notwendig wird, lasse ich das auch so weiterlaufen. Never change a running system! :cool:

    @Querdenker:
    Ja, manchmal kann auch ein Update eher ein Downdate verursachen! :mrgreen:

  3. @Mike:
    Willkommen bei nicht-spurlos. Was die Version 3.5.1 betrifft kann ich das nicht sagen. Bei mir wird nach wie vor die 3.1.4de benutzt, da ich keinen Grund zum ändern sah. Never change a running system und so….

    Du könntest ja testweise mal die Änderungen vornehmen, ob sich dann Dein Problem löst. Wenn ja, dann wissen wir, dass auch die 3.5.1 davon betroffen ist!

  4. @Thomas:
    Nach Anfrage bei Frank Bültge ist auch die Version 3.5.1/2 davon betroffen.
    Ob es Probleme gibt, ist abhängig vom Provider. Da hilft nur probieren.
    Nachteil durch die oben genannte Änderung ist ein schlechterer Spamschutz.
    In der aktuellen Version sind die betroffenen Einträge in den Zeilen 23/24.

    Grüße
    Mike

  5. Vielen Dank Mike für die Rückmeldung! Dass viele Plugins auch abhängig von Providern sind kennen wir ja bereits. Man muss sich dann eben irgendwie behelfen.

    Das mit dem schlechteren Spamschutz ist natürlich weniger schön, kann es speziell hier bei Nicht-spurlos jedoch nicht bestätigen. Das Spamaufkommen ist immer gleich gering – zum Glück.

  6. Ich habe dasselbe Problem, allerdings nicht dieses Plugin installiert…es geht mittlerweile seit einem Monat so und ich finde die Ursache nicht! Meine Plugins sind

    Akismet 2.2.1
    Anarchy Media Player 2.0
    Brian’s Latest Comments 1.5.8
    Clean Archives Reloaded 3.1.4
    Custom Smilies 1.2
    Google XML Sitemaps 3.1.0.1
    Gravatar 1.1
    Highslide Integration 1.4
    ImageManager 2.5.2
    Lighter Menus 2.7.2
    Myftp 1.2
    NextGEN Gallery 0.99.1
    o42-clean-umlauts 0.2.0
    PJW Mime Config 0.9
    Post Notification 1.2.24
    Readers_Post 1.1b
    runPHP 2.3.1
    Spruechklopfer 1.0
    WordPress Database Backup 2.2.1
    wordTube 2.0.0
    WP-Polls 2.31
    XSD Snapr 1.51
    Yet Another Related Posts Plugin
    und schon alle deaktiviert gewesen, aber es half nichts. Noch eine Idee?

  7. @Rob:
    Leider hab ich selbst keine Idee mehr voran der Fehler liegen könnte. Ich weiß nicht in wie weit die anderen Kommentierer hier noch dabei sind, vielleicht kommt ja von dort aus eine Idee.

  8. Hab hinbekommen: Aus früherer Zeit hatte ich das Plugin „WP-Supercache“ drauf, das meine .htaccess verändert hatte – etwa 12 zusätzliche Zeilen. Nachdem diese entfernt waren, ging das auch wieder mit der Anzeige!

  9. Pingback: Cache as Cache can | kaliban

  10. Pingback: Krisenblog

  11. Für diesen Beitrag könnte ich dich knutschen. Seit einem Monat versuche ich dieses Problem zu lösen und so wie es aussieht, hast du mir (hoffentlich) eben den Weg aufgezeigt. Danke, danke, danke. :razz:

    1. @Bärbel: Willkommen bei Nicht-spurlos. Freut mich wenn Du hier die Lösung für Dein Problem gefunden hast. Der virtuelle Knutscher ist angekommen, herzlichen Dank und Grüße in den Südwesten :grin: .

    1. @Blogabfertigung: Willkommen bei Nicht spurlos. Dieses Phänomen ist mir während meiner Nutzungszeit nicht vorgekommen. Da ich dieses Plugin abgesetzt und gegen Contact Form 7 ausgetauscht habe könnte ich auch nicht beantworten, ob es derzeit solche Probs gibt. Hätte Dir sonst gerne weitergeholfen.

      Contact Form 7 kann ich als fehlerfrei arbeitend empfehlen, kannst es ja hier im Blog mal ansehen.

  12. Pingback: Kackblog-Cache-Problem hoffentlich beseitigt » Der Kackblog

Schreibe einen Kommentar zu Thomas Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Du kannst Dich informieren lassen wenn es Folgekommentare gibt. Du kannst aber auch abonnieren ohne zu kommentieren.