AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wieder mal phpBB und BBCodes

Ein Thema von faux · begonnen am 29. Aug 2006 · letzter Beitrag vom 30. Aug 2006
Antwort Antwort
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

Wieder mal phpBB und BBCodes

  Alt 29. Aug 2006, 19:30
Hallo!

Sorry, dass ich nochmal was zu phpBB fragen muss, aber ich hoffe mal, dass das die letzte Frage dergleichen sein sollte, für längere Zeit...

Ich will einfaches HTML ([b], [i], <u>, <s>) in BBCode umwandeln. Dazu habe ich mir ne kleine RegEx geschrieben:
Code:
$text = preg_replace('/<(b|i|u|s)>(.*?)<\/\\1>/si', '[\\1:'.$uid.']\\2[/\\1:'.$uid.']', $text);
Ist das unsicher, wenn ich das so mache? Bzw funktioniert das so überhaupt?

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Wieder mal phpBB und BBCodes

  Alt 29. Aug 2006, 19:37
Bei verschachtelten Tags oder falschem HTML-Code bekommst du ein Problem. Letzteres sollte wohl nocht tolerierbar sein .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Wieder mal phpBB und BBCodes

  Alt 29. Aug 2006, 19:42
Zitat von Khabarakh:
Bei verschachtelten Tags
Ja, das stimmt. Wie könnte ich das umgehen?

Zitat von Khabarakh:
oder falschem HTML-Code bekommst du ein Problem.
Kannst du mir so ein Beispiel posten?

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#4

Re: Wieder mal phpBB und BBCodes

  Alt 29. Aug 2006, 19:43
Ich habe mir auch mal eine solche Funktion geschrieben. Da bekommst du keine Probleme mit verschachtelten Tags...
Allerdings ist die Optimierung mit der bbcode id die phpbb drin hat nicht drin. Aber das wäre ja leicht zu ergänzen...
Code:
function bbcode($text)
{
  return preg_replace(Array
    (
      '/\[strong\](.+?)\[\/strong\]/',
      '/\[i\](.+?)\[\/i\]/',
      '/\[b\](.+?)\[\/b\]/',
      '/\[u\](.+?)\[\/u\]/',
      '/\[(h[1-6])\](.+?)\[\/\1\]/',
      '/\[img\](.+?)\[\/img\]/',
      '/\[img="(.+)"\](.+?)\[\/img\]/',
      '/\[url=(.+?)\](.+?)\[\/url\]/',
      '/\[google\](.+?)\[\/google\]/e',
      '/(?<=\s)([a-zA-Z]+?:\/\/[^\s"]+?)(?=\s)/'
    ),Array
    (
      '[b]\1[/b]',
      '[i]\1[/i]',
      '[b]\1[/b]',
      '<u>\1</u>',
      '<\1>\2</\1>',
      '[img]\1[/img]',
      '[img]\2[/img]',
      '[url="\1"]\2[/url]',
      '\'[url="http://www.google.de/search?q=\'.urlencode(\'\1\').\'"]\1[/url]\'',
      '[url="\1"]\1[/url]'
    ), $text);
}
EDIT:
Zitat von Khabarakh:
Bei verschachtelten Tags oder falschem HTML-Code bekommst du ein Problem. Letzteres sollte wohl nocht tolerierbar sein .
Wie soll man denn da zu falschem HTML kommen...?

EDIT2: Der google-tagt kann zu einer Sicherheitslücke führen, wenn du ' nicht escaped hast.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Wieder mal phpBB und BBCodes

  Alt 29. Aug 2006, 19:53
@yankee: "bloedes" HTML kanns geben, weil er einfaches HTML in BBCodes umwandeln will. Du hast den umgekehrten Vorgang gepostet

@faux: wenn du das im phpBB machst, bedenke dass htmlspecialchars() ausgefuehrt wird. Du darfst also nicht nach < und > suchen, sondern musst nach &lt; und &gt; suchen.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Wieder mal phpBB und BBCodes

  Alt 29. Aug 2006, 20:10
Zitat:
Zitat von Khabarakh:
oder falschem HTML-Code bekommst du ein Problem.
Kannst du mir so ein Beispiel posten?
Code:
<a>

Zitat von faux:
Zitat von Khabarakh:
Bei verschachtelten Tags
Ja, das stimmt. Wie könnte ich das umgehen?
Wenn es bei den vier Tags bleibt, kannst du einfach alle "<x>" (bzw. &lt;x&gtdurch "[x]" und alle "</x>" durch "[/x]" ersetzen .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Wieder mal phpBB und BBCodes

  Alt 29. Aug 2006, 20:42
Zitat von Khabarakh:
Zitat:
Zitat von Khabarakh:
oder falschem HTML-Code bekommst du ein Problem.
Kannst du mir so ein Beispiel posten?
Code:
<a>
WENN sowas darin vorkäme (kommt es nicht), sollte es 1:1 im Post stehen.

@alcaeus: Mache ich nicht, trotzdem danke für den Hinweis.

Habs so gelöst, funktioniert genau so wie ich will. Danke yankee für den Tipp mit dem Array im preg_replace:
Code:
$text = preg_replace(array
   (
      '/<(b)>(.*?)<\/\\1>/si',
      '/<(i)>(.*?)<\/\\1>/si',
      '/<(u)>(.*?)<\/\\1>/si'
   ), '[\\1:'.$uid.']\\2[/\\1:'.$uid.']', $text);
Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Wieder mal phpBB und BBCodes

  Alt 29. Aug 2006, 21:00
Zitat von faux:
@alcaeus: Mache ich nicht, trotzdem danke für den Hinweis.
Na dann aua:
Code:
Dies ist ein Test. [url="index.php"]Klick mich mal an[/url]
htmlspecialchars() brauchst du, damit kein HTML eingeschleusst werden kann. Frueher oder spaeter muss es rein, ich hoffe du machst es wenigstens nachher

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Wieder mal phpBB und BBCodes

  Alt 30. Aug 2006, 00:36
Zitat von alcaeus:
Na dann aua:
Code:
Dies ist ein Test. [url="index.php"]Klick mich mal an[/url]
htmlspecialchars() brauchst du, damit kein HTML eingeschleusst werden kann. Frueher oder spaeter muss es rein, ich hoffe du machst es wenigstens nachher
Natürlich hab ich das im Code:
Code:
$text = preg_replace(array
   (
      '/<br *\/?>/si', // New lines
      '/<font +color=(\'|")(#FF0000)\\1.*?>(.*?)<\/font>/si', // Font color
      '/<(b)>(.*?)<\/\\1>/si',
      '/<(i)>(.*?)<\/\\1>/si',
      '/<(u)>(.*?)<\/\\1>/si'
   ), array(
      "\n",
      '[color=\\2:'.$uid.']\\3[/color:'.$uid.']',
      '[\\1:'.$uid.']\\2[/\\1:'.$uid.']'
   ), $text);

[color=#FF0000]// Escape slashes
$text = addslashes(htmlspecialchars(trim($text)));
$title = addslashes(htmlspecialchars(trim($title)));[/color]
Desweiteren ists irrelevant, da kein User (oder Admin) Zugriff auf meine Funktion hat. Die Funktion ist rein für SQL-Error-Reporting da.

Danke für die Aufmerksamkeit.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz