Seite 1 von 2
2.0.15: [url] BBcode Bug?
Verfasst: 11.06.2005 18:28
von Saint
Tach, wenn ich
einen Link ohne Absatz formatiere funktioniert er
Sobald ich einen Absatz einbaue:
Dann nicht mehr.
Früher ging das definitiv, nach dem Update auf die 2.0.15 nicht mehr.
Gibts dafür schon einen Fix, bzw ist das Thema schon durchgekaut worden?
Gruß
Saint
Verfasst: 11.06.2005 20:05
von Mario Siebert
Verfasst: 11.06.2005 20:37
von Saint
Echt? Dann schau mal
hier.
Da hab ich mich nur mal meinen Post von oben zitiert.
Das ist pures, ungemoddetes 2.0.14, frisch von phpbb.com runtergeladen. Einzig die deutsche Anpassung hab ich gemacht.
Verfasst: 11.06.2005 22:57
von Saint
Ich hab noch mal geschaut und die alte Codepassage, vor dem Update auf die 2.0.15, eingefügt - dann wird der Link auch mit Absatz korrekt angezeigt.
Hier liegt der Hund begraben (aus der "phpBB 2.0.14 to phpBB 2.0.15 Code Changes"):
Code: Alles auswählen
#
#-----[ OPEN ]---------------------------------------------
#
includes/bbcode.php
#
#-----[ FIND ]---------------------------------------------
# Line 210
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\](.*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[^ \"\n\r\t<]*?)\](.*?)\[/url\]#is";
#
#-----[ REPLACE WITH ]---------------------------------------------
#
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\]([^?].*?)\[/url\]#i";
$replacements[] = $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[^ \"\n\r\t<]*?)\]([^?].*?)\[/url\]#i";
Genauer gesagt in dieser Zeile:
Code: Alles auswählen
$patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\]([^?].*?)\[/url\]#i";
Hat jemand eine Idee wie man das fixen kann, ohne den alten Code wieder einzufügen?
Oder kann mir jemand erklären was die Änderungen bewirken? Es ist ja "nur" (.*?) gegen ([^?].*?) und #is gegen #i getauscht worden.
Verfasst: 12.06.2005 12:22
von chybo
Auch ich hätte dazu gern eine Antwort... habs auch schon in einem anderen Beitrag geschrieben
Guckst Du
Verfasst: 12.06.2005 12:30
von Saint
Also eine schnelle Lösung ist das einfügen der alten Codeline:
Öffne includes/bbcode.php
finde:
Code: Alles auswählen
$patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\]([^?].*?)\[/url\]#i";
ersetze durch:
Code: Alles auswählen
$patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\](.*?)\[/url\]#is";
Dann funktioniert das wieder, hab ich schon probiert.
Damit wärst du aber mit dieser Codezeile wieder auf dem Stand der 2.0.14 - was auch nicht der wahre Jakob sein kann.
Ich weiß auch leider nicht was die Änderungen bewirken und in wie weit das einfügen der alten Codeline evtl. die Sicherheit beeinflusst.
Gruß
Saint
Verfasst: 20.06.2005 00:06
von Saint
Das Thema ist leider immer noch nicht geklärt.
Ich hab auch noch mal ein blankes 2.0.14, runtergeladen von phpbb.com (nur eingedeutscht), zum testen installiert.
Hier könnt ihr das selbst ausprobieren, das ging 100% vorher.
Das soll jetzt auch nicht irgendeine Rumreiterei sein, nur weil ich mal was entdeckt hab. Die Sache ist die, das in einigen meiner Foren Links mit Absatz drin erstellt wurden, das meine User also gern mal machen und auf eine anderer Seite von mir häufig eingesetzt wurde. Weil z.B. ein kurzer Text kommt, ein Absatz und dann eine Thumbnailvorschau. Das ganze ist dann ein zusammenhängender Link zu einer Galerie.
Das ganze lässt sich dann natürlich so lösen, das man einfach mehrere
Codes setzt (pro Zeile einen).
Das mus ... ]phpbb.com habe ich auch einen Thread gestartet, bin aber noch nicht wirklich weit gekommen.
Gruß
Saint
Verfasst: 20.06.2005 12:46
von Christian_W
Ich kann Dir sagen woran es liegt aber nicht warum das geändert wurde.
Der Grund ist das fehlende s am Ende.
http://de.php.net/manual/de/reference.p ... ifiers.php
Gruß Christian
Verfasst: 20.06.2005 15:54
von Saint
Jo - alles klar, dann ist das der Übeltäter.
Und so wie es aussieht ist das auch seine einzige Funktion. Korregiert mich, aber dann kann man doch ohne größere Bedenken einfach das
S wieder in die 2.0.15 Zeile einfügen. Oder entsteht ein mögliches Einfallstor, in Verbindung mit Links, wenn man den Modifier
S nutzt? Sonst ist das
S noch beim [img] Tag rausgenommen worden.
Dann könnte die Zeile also umgeschrieben werden:
Öffne includes/bbcode.php
suche:
Code: Alles auswählen
$patterns[] = "#\[url=([\w]+?://[^ "\n\r\t<]*?)\]([^?].*?)\[/url\]#i";
ersetzte durch:
Code: Alles auswählen
$patterns[] = "#\[url=([\w]+?://[^ "\n\r\t<]*?)\]([^?].*?)\[/url\]#is";
Und das funktioniert.
Danke Christian!
Gruß
Saint
Verfasst: 20.06.2005 21:58
von Christian_W
Saint hat geschrieben:Oder entsteht ein mögliches Einfallstor, in Verbindung mit Links, wenn man den Modifier S nutzt?
Ich hab nicht die leiseste Ahnung.
Saint hat geschrieben:Sonst ist das S noch beim [img] Tag rausgenommen worden.
Das könnte dann dazu passen:
docs/CHANGELOG.html hat geschrieben:Changes since 2.0.14
Empty url/img bbcodes no longer get parsed
Gruß Christian