Warning: preg_match

  • [Gelöst] Warning: preg_match

    Hi,

    ich bin heute auf einen neuen Server umgezogen (WP2.3), hat auch soweit alles wunderbar geklappt, im Grunde keine Probleme beim Umzug selbst.

    Doch nun wenn ich eine neue Seite erstelle kommt dann ganz oben auf meiner Haupt Seite die Fehlermeldung:

    Code
    Warning: preg_match() [function.preg-match]: No ending delimiter '!' found in /opt/lampp/htdocs/myblogdomain.de/wp-includes/classes.php on line 99
    Warning: preg_match() [function.preg-match]: No ending delimiter '!' found in /opt/lampp/htdocs/myblogdomain.de/wp-includes/classes.php on line 100

    in der classes.php ist an der stelle:

    Code
    if (preg_match("!^$match!", $request_match, $matches) ||
    preg_match("!^$match!", urldecode($request_match), $matches)) {

    hat einer eine idee woran das liegt und wie ich es wegbekomme?

    Einmal editiert, zuletzt von kaontz (1. Oktober 2007 um 18:47)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Versuche es mal mit einem anderen Delimiter:

    PHP
    if (preg_match("/^$match/", $request_match, $matches) ||
    preg_match("/^$match/", urldecode($request_match), $matches)) {


    Nur ein Tipp, da ich den Inhalt von $match nicht kenne.

    edit. Habe ja vollkommen überlesen, dass der Fehler von WP kommt.. dachte von einem Plugin. Welche PHP-Version nutzt du? Für WP brauchst du PHP Version 4.2 oder höher.

    wpseek.com - Die WordPress-Code-Suchmaschine

    Einmal editiert, zuletzt von Alphawolf (30. September 2007 um 15:13)

  • edit. Habe ja vollkommen überlesen, dass der Fehler von WP kommt.. dachte von einem Plugin. Welche PHP-Version nutzt du? Für WP brauchst du PHP Version 4.2 oder höher.

    Hi ich nutze:
    Apache/2.2.5
    PHP v5.2.3
    MYSQL v5.0.45

    weiß echt nich weiter... :-/

  • Das Problem tritt genau dann auf, wenn als letztes Zeichen in $match ein einzelner Backslash (Escape-Zeichen) aufritt. Dadurch wird das abschließende Zeichen nicht als Delimiter, sondern als Bestandteil des Suchstrings aufgefaßt.
    Ein Backslash im Suchstring muß doppelt angegeben werden, damit er nicht als Escape-Zeichen wirkt.

    Die Frage ist nun, wie da am Ende von $match ein einzelner Backslash hinkommt.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • $match enthält jeweils einen Eintrag aus den rewrite_rules, welche in einer foreach-Schleife durchlaufen werden. Da sich Plugins auch in die rewrite_rules reinschreiben können, würde ich auf ein Plugin tippen. Mal alle einzeln nacheinander abschalten und gucken, wann der Fehler nicht mehr auftritt.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Ok hab das mal durch versucht... konnte kein plugin ausmachen das den fehler verursacht, selbst beim kompletten deaktivieren aller plugins bleibt der fehler bestehen. :(

    Das merkwürdeige ist auch das der fehler nur auf der hauptseite des blogs auftaucht, auf den unterseiten kommt der fehler nicht :-/

  • Nun bin ich auch langsam etwas ratlos. Als Letztes fällt mir noch ein, mal die Permalink-Einstellungen zu aktualisieren. Also einfach im Adminbereich zu den Einstellungen->Permalinks wechseln und dort
    [Permalink-Struktur aktualisieren >>]
    drücken. Dann werden die rewrite_rules neu geschrieben.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Seltsam ist nur, dass es auf seinem alten Server mit allen Plugins scheinbar problemlos lief. Ich tippe daher mal ganz frech auf eine Miss-Konfiguration des Hosters.

    Hast du die Möglichkeit, deinen Blog testweise temporär lokal oder auf einen anderen Server zu betreiben?

    wpseek.com - Die WordPress-Code-Suchmaschine

  • Könnte natürlich auch sein, vielleicht läuft das ja nun auf einer Windows-Kiste. Da kommen Backslashs ja alle Nase lang als Verzeichnistrenner vor :-)

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Hi, so nun hab ich mal getestet, hab meinen DNS hier zuhause (localer DNS) mal auf den Alten server umgestellt, dort tritt der fehler wirklich nicht auf.
    darauf hin habe ich mal den MySQL inhalt der rewrite_rules in der Tabelle wp_options rauskopiert und in die datenbank des neuen servers reinkopiert, dann wurde der fehler nicht mehr angezeigt bis ich wieder eine seite erstellt/gelöscht habe.


    hilft das nun vielleicht weiter?
    der neue Server ist auch ein Linux Server, also das sollte es nicht sein.

  • Bei jedem Erstellen, Ändern oder Löschen von statischen Seiten werden die rewrite_rules auch neu geschrieben (für jede Seite werden eigene Rules eingetragen). Schau Dir doch noch mal den Inhalt der rewrite_rules in der Datenbank an und suche nach dem Backslash. Wo tritt dieser auf?

    Das es ohne Permalinks geht ist logisch, da werden die Rewriterules auch nicht benötigt :-)

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Bei jedem Erstellen, Ändern oder Löschen von statischen Seiten werden die rewrite_rules auch neu geschrieben (für jede Seite werden eigene Rules eingetragen). Schau Dir doch noch mal den Inhalt der rewrite_rules in der Datenbank an und suche nach dem Backslash. Wo tritt dieser auf?


    Weder ein Backslash noch ein Ausrufezeichen finde ich in der Datenbank bei den Rewrite_rules :neutral:

    Edit: Ah aber ich habe da ganz komiche sonderzeichen drinne fällt mir grade so auf!?

    Code
    ...s:49:"index.php?attachment=$matches[1]&feed=$matches[2]";s:30:"�/([A-Za-z0-9-]+)/([0-9]+)?/?$";s:62:"index.php?pp_album=main&pp_cat=$matches[1]&pp_page=$matches[2]";s:26:"�/([A-Za-z0-9-]+)/(.+)?/?$";s:63:"index.php?pp_album=main&pp_cat=$matches[1]&pp_image=$matches[2]";s:20:"�/([A-Za-z0-9-]+)/?$";s:42:"index.php?pp_album=main&pp_cat=$matches[1]";s:6:"(�)/?$";s:23:"index.php?pp_album=main";}

    kann das an dem � liegen? woher kommt das denn?

    Einmal editiert, zuletzt von kaontz (1. Oktober 2007 um 18:09)

  • pp_album pp_page ...

    Das sieht mir irgendwie doch nach einem Plugin aus (Photopress?).
    Am besten mal deaktivieren und dann die Rewrite-Rules aktualisieren.

    Oder mal die Photopress-Optionen ansehen, ob da alles stimmt.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Oder mal die Photopress-Optionen ansehen, ob da alles stimmt.


    Ah bingo das wars... die einstellungen von Photopress sind beim umzug nicht mitübernommen worden. und beim plugins abstellen um den fehler zu finden hätte ich auch mal die rewrite_rules neu erstellen lassen müssen. :-/

    Danke an alle die geholfen haben!!!
    echt super ohne euch hätt ich das wahrscheinlich schon lange aufgegeben, Danke nochmal!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!